사건 발단
spring-boot-starter-security:2.7.3을 사용하며 기존에 사용하던 WebSecurityConfiguerAdapter가 Deprecated되있는 것을
확인하였습니다. 이를 대체하기 위한 방법을 알아보며 공식문서를 참조하였습니다.
Spring Security 5.7.1 부터 최신버전, Spring Boot 2.7.0 부터 최신버전부터 Deprecated가 되었습니다.
SecurityFilterChain을 Bean으로 등록해 사용하라는 내용입니다.
이러한 변화에 대한 이유로는 스프링 프레임워크에서 사용자로 하여금 Component기반의 Security configuration을
장려하기 위함이라 합니다. WebSecurityConfigurerAdapter를 상속하여 HttpSecurity, WebSecurity를
각 각 오버라이딩 하지 않고 , SecurityFilterChain, WebSecurityCustomizer 두 개의 빈만 선언하면 됩니다.
한 마디로 하나하나 오버라이딩하지 말고 편하게 쓰라는거네요.
해결 방안
이전에 사용하던 방식은 WebSecurityConfigurerAdapter를 상속받아 각 configure 메서드를 오버라이드 해야했습니다.
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// configure HTTP security
}
@Override
public void configure(WebSecurity web) throws Exception {
// configure Web security
}
}
Bean
@Configuration
public class SecurityConfiguration {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/user/**", "/subscribe/**", "/comment/**").authenticated()
.anyRequest().permitAll();
return http.build();
}
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
}
}
다음 글을 참고하였습니다.
https://www.codejava.net/frameworks/spring-boot/fix-websecurityconfigureradapter-deprecated
'언어와 프레임워크 > Spring' 카테고리의 다른 글
[Springboot] 개발환경과 테스트환경 각각 다르게 설정하기 (예시 DB) (0) | 2023.03.03 |
---|---|
[Spring] JUnit5와 생성자 DI (0) | 2022.09.30 |
[Spring] Spring Security와 h2-console 403 에러 (0) | 2022.09.30 |
[Spring] Profile을 통해 다양한 application.yml 설정 운용하기 (1) | 2022.09.30 |
댓글