인프런 커뮤니티 질문&답변

최 민석님의 프로필 이미지

작성한 질문수

스프링 시큐리티 OAuth2

초기화 과정 이해 - SecurityBuilder / SecurityConfigurer

apply 대체

해결된 질문

작성

·

272

0

최신버전에서 apply가 deprecated되어서 자료를 좀 찾아봤습니다만, 확신이 없어서 질문드립니다.

@EnableWebSecurity
@Configuration
public class SecurityConfig {

    @Bean
    SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests(authorize -> authorize
                        .anyRequest().authenticated()
                )
                .formLogin(withDefaults())
                .with(new CustomSecurityConfigurer().setFlag(true), withDefaults());

        return http.build();
    }

}

대체로 with을 사용한다고 하는데, Customizer.withDefaults를 두번째 인자로 주었습니다.
이렇게 사용하는 것이 맞나요?
Customizer의 역할도 조금만 알려주시면 감사하겠습니다. 기존 프로젝트에 대입하려니 최신 관련 자료가 너무나 없네요... ㅠㅠ

답변 2

0

정수원님의 프로필 이미지
정수원
지식공유자

네 두번째 인자에는 CustomSecurityConfigurer 객체가 그대로 반환됩니다

그래서

.with(new CustomSecurityConfigurer(), csc.setFlag(true).customValue(a)…)

식으로 하시면 됩니다

0

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

님의 질문에 대해 답변드립니다. Customizer.withDefaults를 사용하여 HttpSecurity 객체를 설정하는 접근 방법은 올바릅니다. 이 방식은 스프링 시큐리티의 다양한 구성 요소에 대해 기본 설정을 적용하고자 할 때 유용하게 사용됩니다.

Customizer는 스프링의 구성 요소를 더 쉽게 설정할 수 있도록 도와주는 인터페이스입니다. 특정 구성 요소에 대한 설정을 커스터마이징할 때, Customizer를 사용하면 간결하고 읽기 쉬운 코드를 작성할 수 있습니다. withDefaults() 메서드는 해당 구성 요소에 대해 권장되는 기본 설정을 적용합니다.

다만, 질문에서 언급하신 with 메서드 대신 apply 메서드의 사용에 대해 문의하셨는데, 구체적으로 어떤 apply 메서드가 deprecated 되었는지 명시되지 않았습니다. HttpSecurity의 컨텍스트에서, apply는 보안 구성에 커스텀 설정 클래스를 적용할 때 사용됩니다. 만약 apply 메서드가 구버전에서 deprecated 되었다면, 대체 방법으로는 문의하신 것처럼 Customizer 혹은 다른 스프링 시큐리티의 구성 메소드들을 사용하는 것이 일반적인 접근법입니다.

스프링 시큐리티의 설정을 커스터마이징하는 방법에는 여러 가지가 있으며, 프로젝트의 보안 요구사항에 따라 가장 적합한 방법을 선택해야 합니다. 최신 버전의 변경사항 및 권장사항을 확인하기 위해 공식 문서도 참고하는 것이 좋습니다.

다시 한번 강조하지만, 구체적인 구성 방법은 프로젝트의 복잡성과 요구사항에 따라 달라질 수 있으므로, 공식 문서나 최신 가이드를 참조하는 것을 권장합니다.