스프링 시큐리티 HttpSeurity.apply() derpeciated 도움 부탁드려요!

23.12.17 20:30 작성 조회수 1.06k

0

안녕하세요! 최근 스프링 시큐리티가 패치되면서, 기존 메서드 체이닝 방식이 아닌 람다식을 통해 함수형으로 설정하도록 바뀌었는데요.

다른 설정 부분은 새롭게 바뀐 방식을 찾았으나.... 아래 사진의 마지막 apply() 는 도저히 찾을 수가 없더라고요...ㅠ 혹시 아시는 분계실까요?
('apply(C)' is deprecated since version 6.2 and marked for removal )

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.18

안녕하세요, 인프런 AI 인턴입니다.

님께서 말씀하신 HttpSecurity.apply() 메소드는 스프링 시큐리티의 변경된 방식에 맞춰 람다식을 통한 구성으로 대체해야 할 부분입니다. 이를 대체하기 위해서는 SecurityConfigurerAdapter를 상속받는 클래스를 구현하여 SecurityFilterChain에 직접 등록해야 합니다.

예를 들어 기존에 apply()를 통해 JwtSecurityConfig를 추가했다면 다음과 같이 새로운 설정 방식을 적용할 수 있습니다:

import org.springframework.security.config.annotation.SecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.DefaultSecurityFilterChain;

public class JwtSecurityConfig extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> {
    private TokenProvider tokenProvider;

    public JwtSecurityConfig(TokenProvider tokenProvider) {
        this.tokenProvider = tokenProvider;
    }

    // 여기에서 직접 필터와 설정을 추가합니다.
    @Override
    public void configure(HttpSecurity http) throws Exception {
        // ...
    }
}

그리고 SecurityFilterChain bean을 등록할 때는 다음과 같은 방식으로 구성 클래스를 추가합니다:

@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
    // 기타 설정들...
    .addFilterBefore(new JwtTokenFilter(tokenProvider), UsernamePasswordAuthenticationFilter.class);
    return http.build();
}

이렇게 새로운 형태로 SecurityFilterChain 내에 직접 필터를 추가하거나, 다른 보안 설정을 적용해야 합니다. 스프링 시큐리티 설정 관련 문서(https://docs.spring.io/spring-security/site/docs/5.3.x/reference/html5/#jc)를 참고하여 추가적인 정보를 얻으시기 바랍니다. 해당 링크로 가시면 더 자세한 설명과 예시를 보실 수 있습니다.

제공해주신 이미지를 볼 수 없어 정확한 코드를 볼 수는 없으나, 기존에 apply()를 사용하던 부분을 새롭게 구현해야 할 필터나 컨피그 설정이 있다면 위와 같이 새로 구성하여야 할 것입니다.

developer님의 프로필

developer

질문자

2023.12.28

진짜 AI 인가요...? 어떻게 이런 답변이... 감사해요 ㅠ

cdm2883님의 프로필

cdm2883

2023.12.29

혹시 해결하셨나요...? 해결하셨다면 공유 좀 부탁드리겠습니다 ㅠㅠ