학교/캡스톤디자인과창업프로젝트

'httpBasic()' is deprecated and marked for removal

ChaSso 2024. 1. 28. 03:12

httpSecurity 뒤로 취소선이 그어져 있길래 확인해보니

deprecated 되었다는 알림이 떴다.

 

이는 스프링 시큐리티의 버전 차이로 인한 것으로,

Spring Security 6.1.0부터는 메서드 체이닝의 사용을 지양하고 람다식을 통해 함수형으로 설정하는 것을 지향하기 때문에 코드를 수정해야 한다고 한다.

 

다음과 같은 원래의 코드를

public SecurityFilterChain securityFilterChain (HttpSecurity httpSecurity) throws Exception {
    return httpSecurity
            .httpBasic().disable()
            .csrf().disable()
            .cors().and()
            .authorizeRequests()
            .antMatchers("/members/signup", "/members/login", "/members/refreshtoken").permitAll()
            .antMatchers(HttpMethod.POST, "/members/**").authenticated()
            .and()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .addFilterBefore(new JwtFilter(secretKey), UsernamePasswordAuthenticationFilter.class)
            .build();
}

 

 

다음과 같이 수정하여 오류를 해결했다.

public SecurityFilterChain securityFilterChain (HttpSecurity httpSecurity) throws Exception {
    return httpSecurity.httpBasic(HttpBasicConfigurer::disable)
            .csrf(CsrfConfigurer::disable)
            .cors(AbstractHttpConfigurer::disable)
            .authorizeHttpRequests(authorize -> authorize
            .requestMatchers("/members/signup", "/members/login", "/members/refreshtoken").permitAll()
            .requestMatchers(HttpMethod.POST, "/members/**").authenticated())
            .sessionManagement(configurer -> configurer.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .addFilterBefore(new JwtFilter(secretKey), UsernamePasswordAuthenticationFilter.class)
            .build();
}

 

참고)

security 6.1 마이그레이션

Spring Security 6.1.0에서 is deprecated and marked for removal 오류