네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

반응형

Deprecated

기존에는 WebSecurityConfigurerAdapter를 상속받아 설정을 오버라이딩 하는 방식이었는데 바뀐 방식에서는 상속받아 오버라이딩하지 않고 모두 Bean으로 등록합니다.

 

변경 전 코드

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    private final SecurityHandler securityHandler;

    @Bean
    public SHA256CodeEncoder sha256CodeEncoder() {
        return new SHA256CodeEncoder();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .sessionManagement(session -> session.invalidSessionUrl("/account/login")).headers().frameOptions().sameOrigin()
                // .. 생략
                .addFilterAt(tokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
    }

}

변경 후 코드

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@RequiredArgsConstructor
public class SecurityConfig {

    private final SecurityHandler securityHandler;

    @Bean
    public SHA256CodeEncoder sha256CodeEncoder() {
        return new SHA256CodeEncoder();
    }

    // 변경된 방식은 SecurityFilterChain을 빈으로 등록하는 방식
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.headers().frameOptions().sameOrigin()
               // ... 생략 ...

        return http.build(); // Bean으로 등록해서 스프링 컨테이너가 관리할 수 있도록 변경
    }
}
728x90
반응형
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !