728x90
문제
SpringSecurity를 적용한 이후 이전까지 잘 접속되던 h2 콘솔에 접속이 안되고 403 에러가 나왔다.
h2 콘솔 관련 filter 설정을 안해서 그런것 같다고 생각은 하였지만 간단하게 해결되지 않아서 해당 기록을 정리하려고 작성함
에러 확인
- 처음 필터에 console을 추가하지 않았던 경우에 접속 페이지부터 403이 나왔다.

filter 적용 1
단순히 config에서 설정만 해주면 될 것으로 판단해서 아래와같이 Security에 한줄만 추가했다.
httpSecurity.authorizeHttpRequests(config -> config
// h2 접속 설정
.requestMatchers(PathRequest.toH2Console()).permitAll()
...
).permitAll()
.anyRequest().authenticated());

메인페이지까지 접속이 잘 되서 오케이 해결!! 인줄 알았지만... 왠걸..
두번째 문제


안에 표기되는 내용들이 죄다 403.... 방법을 좀 찾아보니 H2은 iframe으로 되어있어서 아래와같은 설정을 추가해줘야한다고 함!
filter 적용 2
// DB 드라이버 클래스 이름 (h2 사용 시 security 충돌 해결 위해)
@Value("${spring.datasource.driver-class-name}")
private String springDatasourceDriverClassName;
...
httpSecurity.authorizeHttpRequests(config -> config
// h2 접속 설정
.requestMatchers(PathRequest.toH2Console()).permitAll()
...
).permitAll()
.anyRequest().authenticated());
// DB 드라이버 클래스 이름이 h2일 경우, h2 관련 옵션 추가
if (springDatasourceDriverClassName.equals("org.h2.Driver")) {
httpSecurity.headers(config -> config.frameOptions(frameOptionsConfig -> frameOptionsConfig.sameOrigin()));
}
해당 설정 적용 이후 잘 작동함!

refs
Spring Boot - Jwt (3) 구현 - 회원가입, 로그인
일단 전문일단 Jwt를 구현하기 전 간단하게 회원가입 기능을 구현하자.혹시 403에러가 뜨면 보통 securityConfig 설정이 잘못돼있다.화면 구현Controller 구현localhost:8080 접속.포트를 바꿔놓거나 SecurityCo
velog.io
728x90
반응형
LIST
'BE > Java' 카테고리의 다른 글
| Springboot3 + Swagger + Jwt (4) (0) | 2024.06.25 |
|---|---|
| Security 필터 종류? (1) | 2024.06.25 |
| Springboot3 + Swagger + Jwt (3) (0) | 2024.06.21 |
| Springboot3 + Swagger + Jwt (2) (0) | 2024.06.20 |
| Springboot3 + Swagger + Jwt (1) (0) | 2024.06.20 |