인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

buo642g님의 프로필 이미지
buo642g

작성한 질문수

스프링 시큐리티

AuthenticationManager

해결된 질문

작성

·

520

1

public class SecurityConfig extends WebSecurityConfigurerAdapter {

    ...
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

    @Bean
    public FilterSecurityInterceptor customFilterSecurityInterceptor() throws Exception {

        FilterSecurityInterceptor filterSecurityInterceptor = new FilterSecurityInterceptor();
        ...                 
        filterSecurityInterceptor.setAuthenticationManager(authenticationManagerBean());
        return filterSecurityInterceptor;
    }

}
  1. 위 방식으로 AuthenticationManager 를 받아 와서 사용하셨는데,
    authenticationManagerBean() 는 단순히 AuthenticationManager 빈을 반환한다고 이해하면 되나요?

  2. WebSecurityConfigurerAdapter 를 사용할 수 없는 5.7 이후 버전에 맞추어 구현한 아래 authenticationManager(HttpSecurity http) 를 사용해도 문제 없을까요?

public class SecurityConfig {

    @Bean
    public AuthenticationManager authenticationManager(HttpSecurity http) throws Exception {
        AuthenticationManagerBuilder authenticationManagerBuilder =
                http.getSharedObject(AuthenticationManagerBuilder.class);
        authenticationManagerBuilder.authenticationProvider(authenticationProvider);
        return authenticationManagerBuilder.build();
    }


    @Bean
    public FilterSecurityInterceptor customFilterSecurityInterceptor(HttpSecurity http) throws Exception {
        FilterSecurityInterceptor filterSecurityInterceptor = new FilterSecurityInterceptor();
        ...
        filterSecurityInterceptor.setAuthenticationManager(authenticationManager(http));
        return filterSecurityInterceptor;
    }

}

답변 1

1

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

위 방식으로 생성해도 괜찮을 것 같습니다.

혹은

@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
    ProviderManager authenticationManager = (ProviderManager)authenticationConfiguration.getAuthenticationManager();
    authenticationManager.getProviders().add(authenticationProvider)
    return authenticationManager;
}

 

와 같이 구성해도 됩니다.

다만 생성하는 방식에 따라서 최종 구성에서는 약간의 차이는 있습니다.

일단 사용해 보시고 문제가 발생한다면 다시 질문 해 주십시오

buo642g님의 프로필 이미지
buo642g

작성한 질문수

질문하기