• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

AuthenticationManager

22.11.14 23:23 작성 조회수 403

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;
}

 

와 같이 구성해도 됩니다.

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

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