공부해봅시당

[Spring Boot] Security 7.0 버전업에 의한 Deprecated 문제 본문

STUDY/개발 고민

[Spring Boot] Security 7.0 버전업에 의한 Deprecated 문제

tngus 2023. 7. 9. 15:08

스프링부트 Security가 7.0으로 업데이트되면서 변화하게 된 여러 사항들이 있어 비교를 위해 글을 작성한다.

 

Spring Security 7.0 예시코드

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig {

    @Autowired
    private PrincipalOauth2UserService principalOauth2UserService;

    // Security 를 이용한 각종 권한 접근 경로 등 설정
    @Bean
    protected SecurityFilterChain configure(HttpSecurity http) throws Exception {
        http
                .csrf((csrf) -> csrf.disable())
                .authorizeHttpRequests(authorize -> authorize
                        .requestMatchers("/**").permitAll()
                        .anyRequest().authenticated()
                )
                .formLogin(formLogin -> formLogin
                        .loginPage("/chatlogin").permitAll()
                        .loginProcessingUrl("/login")
                        .defaultSuccessUrl("/")
                )
                .logout((logout) -> logout
                        .logoutUrl("/logout").permitAll()
                        .logoutSuccessUrl("/")
                )
                .oauth2Login((oauth2Login) -> oauth2Login
                        .loginPage("/chatlogin")
                        .userInfoEndpoint(userInfo -> userInfo
                                .userService(principalOauth2UserService)
                        )
                )
                .rememberMe(Customizer.withDefaults());
        return http.build();
    }
}

 

가장 크게 변화한 것은 사용 방식이다.

Spring Security 7.0부터는 모두 람다형으로 변경하였다.

따라서 csrf().disable()로 사용했던 것들은 csrf((csrf) -> csrf.disable())처럼 작성해야 한다.

 

자세한 내용은 아래 문서를 확인하자.

https://docs.spring.io/spring-security/reference/migration-7/configuration.html

 

Configuration Migrations :: Spring Security

The Lambda DSL is present in Spring Security since version 5.2, and it allows HTTP security to be configured using lambdas. You may have seen this style of configuration in the Spring Security documentation or samples. Let us take a look at how a lambda co

docs.spring.io

아래는 Deprecated된 함수 목록이니 참고하면 좋을 듯 하다.

https://docs.spring.io/spring-security/site/docs/current/api/deprecated-list.html

 

Deprecated List (spring-security-docs 6.1.1 API)

 

docs.spring.io