해결된 질문
작성
·
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;
}
}
위 방식으로 AuthenticationManager
를 받아 와서 사용하셨는데,authenticationManagerBean()
는 단순히 AuthenticationManager
빈을 반환한다고 이해하면 되나요?
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;
}
와 같이 구성해도 됩니다.
다만 생성하는 방식에 따라서 최종 구성에서는 약간의 차이는 있습니다.
일단 사용해 보시고 문제가 발생한다면 다시 질문 해 주십시오