리꾸므

17번째 발자국_Spring_Sequrity_WebSecurityConfigurerAdapter_지원중단 본문

발걸음/오류창고

17번째 발자국_Spring_Sequrity_WebSecurityConfigurerAdapter_지원중단

리꾸므 2022. 8. 22. 23:20

 Spring Security를 적용했는데 WebSecurityConfigurerAdapter가 상속되지않았다. 이 문제로 공식문서를 확인해보니 스프링 시큐리티 5.7.0-M2버전부터 WebSecurityConfigurerAdapter를 사용하지 않는다고 나와 있다. 그래서 해결법이 뭔가하니 @Override 대신 @Bean을 등록하는 방법으로 바뀌었다.

 

 HttpSecurity 5.7이전

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests((authz) -> authz
                .anyRequest().authenticated()
            )
            .httpBasic(withDefaults());
    }
}

HttpSecurity 5.7이후

@Configuration
public class SecurityConfiguration {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests((authz) -> authz
                .anyRequest().authenticated()
            )
            .httpBasic(withDefaults());
        return http.build();
    }

}

WebSecurity 5.7이전

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(WebSecurity web) {
        web.ignoring().antMatchers("/ignore1", "/ignore2");
    }

}

WebSecurity 5.7이후

@Configuration
public class SecurityConfiguration {

    @Bean
    public WebSecurityCustomizer webSecurityCustomizer() {
        return (web) -> web.ignoring().antMatchers("/ignore1", "/ignore2");
    }

}

 

 

참고

https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter