나의 개발일지
스프링 시큐리티 환경에서 H2 사용하기 위한 csrf 제어 코드 본문
public class SecurityConfig {
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.csrf(
csrf -> csrf
.ignoringRequestMatchers("/h2-console/**")
)
.headers(
headers -> headers
.addHeaderWriter(
new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN)
)
)
.authorizeHttpRequests(
authorizeHttpRequests -> authorizeHttpRequests
.requestMatchers("/adm/**")
.hasRole("ADMIN")
.anyRequest()
.permitAll()
)
.formLogin(
formLogin -> formLogin
.loginPage("/member/login")
.defaultSuccessUrl("/")
)
.logout(
logout -> logout
.logoutUrl("/member/logout")
.logoutSuccessUrl("/")
)
.build();
}
@Bean
PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
FrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN)
- 과거의 html 안에 html을 넣는 기술인 Frame이라는 방식이 현재에 와선 구시대의 방식이기 때문에 스프링 시큐리티에서 막아놓았지만 h2는 오래된 프로그램이라 Frame을 쓰기 때문에 Frame 사용을 허용하는 코드
'Language > SpringBoot' 카테고리의 다른 글
| [SpringBoot] Page와 PageImpl (0) | 2024.02.21 |
|---|---|
| [SpringBoot] hiddenmethod를 이용한 타임리프 환경에서 PutMapping, DeleteMapping 활용법 (1) | 2024.01.14 |
| 스프링부트 TDD 환경에 유용한 DB쿼리 송출 yml 코드 (0) | 2024.01.07 |
| 인텔리제이 Thymeleaf layout 컴파일에러 표시 없애기 (0) | 2024.01.07 |
| 스프링부트 내에서 자주 사용하는 타임리프의 속성 (0) | 2024.01.07 |