작성
·
31
답변 2
0
안녕하세요!! 🙂 seongmin2053님~
혹시 현재 application.yml
설정이 어떻게 되어 있는지, 어떤 경로로 h2-console로 접근하려 했는지 확인 가능하실까요?!
사용하신 설정을 기반으로 어떤 부분이 문제인지 추적해 볼 수 있을 것 같습니다. 🙇
아유 아닙니다 ㅎㅎㅎ 편하신 때에 알려주셔요! 설정 확인 결과 특이사항은 없는데요! (= 이론상 잘 동작해야 하는데요!)
어떤 profile로 서버를 실행시키셨는지
서버가 실행될 때의 활성화된 profile은 무엇인지
어떤 경로로 접근하셨는지
알려주시면 원인 파악에 더 도움이 될 것 같습니다. ☺
profile은 local 로 실행시켰습니다!
활성화된 profile 역시 local 로 확인했습니다!
질문 이해를 잘 못하였습니다 ㅜㅜ http://localhost:8080/h2-console 경로로 접근하였습니다
그런데 제가 서버를 실행하니 h2 데이터베이스에서 user 예약어 때문에 오류가 떴는데 이것 때문에 접속이 안되는 것 같습니다. 이 오류를 해결하기 위해 "user" 이런식으로 따옴표로 감싸라고 하는데 어떻게 해결해야 하는지 잘 모르겠습니다.
3번, 접근 하신 경로는 URL을 문의 드린 것이 맞습니다! 모두 다 잘 하셨네요! ☺
그런데 제가 서버를 실행하니 h2 데이터베이스에서 user 예약어 때문에 오류가 떴는데 이것 때문에 접속이 안되는 것 같습니다
라는 오류가 나는 경우는 서버 자체가 실행되다가 에러로 인해 종료될거라 /h2-console
로 접속되지 않는 충분한 원인이 될 것 같습니다.
아래 글을 타고 들어가 참고해보시면 도움이 될거에요!
여기에도 해결책을 간략히 말씀드리면
User
Entity 위에 @Table(name = "users")
라는 코드를 추가해 User entity는 user
테이블 대신 users
테이블을 사용하게 한다
H2 예약에서 user
를 제외해 user
테이블을 사용할 수 있게 한다
두 가지 방법이 있습니다! 둘 중 편하신 쪽으로 적용해도 좋습니다. 감사합니다! 🙇
자세한 설명 너무 감사합니다! ㅜㅜ
보내주신 링크 질의글 확인했습니다! 제가 이해한 것이 맞다면 NON_KEYWORDS=USER가 H2 데이터베이스에서 USER 예약어를 제거하는 것인데 제가 위 답글에서 보내드린 YML 코드에 보면 현재 USER 예약어를 제거하고 있음에도 불구하고 여전히 오류가 뜨는 이유가 궁금합니다!
안녕하세요! 대댓글이라 늦게 확인했군요 😭
제가 이해한 것이 맞다면 NON_KEYWORDS=USER가 H2 데이터베이스에서 USER 예약어를 제거하는 것인데 제가 위 답글에서 보내드린 YML 코드에 보면 현재 USER 예약어를 제거하고 있음에도 불구하고 여전히 오류가 뜨는 이유가 궁금합니다!
이해 해주신 내용이 정확히 맞습니다. 말씀해주신 것처럼 이론적으로는 해당 오류가 사라져야 맞는데요, H2 버전이 다르거나 제가 아직 알지 못하는 모종의 이유로 해당 옵션이 동작하지 않는 가능성이 있을 것 같아요 🥺 제 경험상 이런 부분은 정확히 같은 환경, 정확히 같은 버전으로 확인해 깊이 있는 디버깅을 해야 하다보니... 우선은 @Table
을 사용해 지나가셔도 좋을 것 같습니다. 감사합니다. 🙇
0
안녕하세요, 인프런 AI 인턴입니다. seongmin2053님.
“Whitelabel Error Page”는 주로 Spring Boot에서 발생하는 일반적인 오류 페이지로, 주로 설정 문제로 인해 발생합니다. 특히, h2-console에 접근할 때 이 오류가 발생하는 경우, Spring Security 설정에서 h2-console 경로가 허용되지 않아 발생할 수 있습니다.
Spring Security를 사용하고 있는 경우, 다음과 같은 방법으로 h2-console에 대한 접근을 허용할 수 있습니다:
WebSecurityConfigurerAdapter
를 상속받는 Security Configuration 클래스를 생성합니다.configure
메서드를 오버라이드하여 h2-console 경로에 대한 접근을 허용합니다.아래 예시를 참고하세요:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/h2-console/**").permitAll() // h2-console 접근 허용
.and()
.csrf().disable() // CSRF 비활성화 (개발 환경용)
.headers().frameOptions().disable(); // 프레임 옵션 비활성화
}
}
위 설정을 적용한 후, 다시 h2-console에 접속해 보시면 Whitelabel Error Page 문제 없이 접속이 가능할 것입니다.
관련하여 더 깊이 있는 정보가 필요하시다면, Whitelabel Error Page 라고 나옵니다.. 구글링해 보면서 찾아보았는데 어떻게 해결하죠?(해결) 게시물을 확인해 보세요.
저는 질문자님의 이해를 돕고자 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
넵 제가 확인이 늦었네요 죄송합니다ㅜㅜ