Spring Security WebSecurityConfigurerAdapter 가 deprecated 된 이슈해결하기
Spring Security 5.7.0-M2 부터는 구성 요소 기반 보안 설정으로 변경된다는 이슈가 있었다. 예전 방식 WebSecurityConfigurerAdapter 상속 후, configure 메소드를 오버라이딩 하여 설정하는 방식에서 5.7.x 이후 버전 부터 SecurityFilterChain 를 빈으로 등록하는 방식을 권장한다고 한다.
/** * SpringSecurity config * Created by blake on 2023/01/09. */@Configuration@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled =true)publicclassOldSecurityConfigextendsWebSecurityConfigurerAdapter { @AutowiredprivateUmsAdminService adminService; @Overrideprotectedvoidconfigure(HttpSecurity httpSecurity) throwsException {// HttpSecurity 구성 생략 } @Overrideprotectedvoidconfigure(AuthenticationManagerBuilder auth) throwsException {auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder()); } @Bean @OverridepublicAuthenticationManagerauthenticationManagerBean() throwsException {return super.authenticationManagerBean(); }}
SpringBoot 2.7.0 이후
공식 사이트에서 권장하는 방식으로 변경해보자
/** * SpringSecurity 5.4.x 이후 설정 * 순환 의존성을 피하기 위해 HttpSecurity만 구성 * Created by blake on 2023/01/09. */@ConfigurationpublicclassSecurityConfig { @BeanSecurityFilterChainfilterChain(HttpSecurity httpSecurity) throwsException {// HttpSecurity 구성 생략returnhttpSecurity.build(); }}