본문 바로가기
Spring/security

Spring Security Config(without WebSecurityConfigurerAdapter)

by k0o9 2022. 5. 30.

Spring Security 5.7.0 - M2 버전 부터 WebSecurityConfigurerAdapter가deprecated되었습니다.

 

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder(){
        return new BCryptPasswordEncoder();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // Filter Chain 설정
    }

 

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

기존에는 위와 같은 방식으로 WebSecurityAdapter를 상속받아서 사용했다면 앞으로는 SecurityFilterChain 빈을 등록 하는 방식을 권장합니다.

 

이때 Spring Security의 버전에 따라 @EnableWebSecurity를 사용하지 않으면 HttpSecurity Bean을 찾을 수 없다는 에러가 발생하므로 추가해주자.

 

 

참고자료

https://docs.spring.io/spring-security/reference/servlet/index.html