스프링 시큐리티를 적용하기 위해 WebSecurityConfigurerAdapter 를 상속 받으려고 했는데, 더 이상 해당 클래스가 사용되지 않는다는 경고가 나왔다.
WebSecurityConfigurerAdapter 클래스
- 스프링 시큐리티가 초기화 되면서 해당 클래스가 실행되면, 설정 초기화 작업에 도움을 주는 api들이 실행 된다.
'org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter' is deprecated
SecurityFilterChain Bean을 사용하여 HttpSecurity를 구성, WebSecurityCustomizer Bean을 사용하여 WebSecurity를 구성하도록 안내하고 있다.
WebSecurityConfigurerAdapter override 대신 SecurityFilterChain bean 을 생성하는 방식으로 간단히 변경이 가능하다.
변경 전 WebSecurityConfigurerAdapter override
@Configuration
@RequiredArgsConstructor
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public void configure(AuthenticationManagerBuilder auth) throws Exception{
auth.userDetailsService(userDetailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/member/login")
.defaultSuccessUrl("/")
.usernameParameter("userId")
.passwordParameter("password")
.loginProcessingUrl("/login");
}
@Override
public void configure(WebSecurity web){
web.ignoring().antMatchers("/images/**", "/js/**");
}
}
변경 후 SecurityFilterChain bean
@Configuration
@RequiredArgsConstructor
public class SecurityConfig {
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authConfiguration) throws Exception {
return authConfiguration.getAuthenticationManager();
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/member/login")
.defaultSuccessUrl("/")
.usernameParameter("userId")
.passwordParameter("password")
.loginProcessingUrl("/login");
return http.build();
}
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return (web) -> web.ignoring().antMatchers("/images/**", "/js/**");
}
}
Reference
https://stackoverflow.com/questions/72381114/spring-security-upgrading-the-deprecated-websecurityconfigureradapter-in-spring
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
'Spring > Spring Security' 카테고리의 다른 글
[Spring Secururity ERROR] 스프링 빈 순환 참조 에러 The dependencies of some of the beans i (1) | 2022.10.30 |
---|---|
[Spring Security] Spring Security 설정하기 (0) | 2022.10.29 |
[Spring Security] 유저별 권한 설정 (0) | 2022.10.28 |
[Spring Security] 동시 로그인 제한하기(동시 세션 제어) (0) | 2022.10.28 |
[Spring Security] Remember Me 인증(로그인 상태 유지) (0) | 2022.10.27 |