작성
·
735
·
수정됨
0
실전 프로젝트 보고 있습니다.
DB 연동 인증 처리(2) : CustomAuthenticationProvider 학습 중인데요.
스프링 버전이 2.7x 이라서 SecurityConfig.java 설정이 맞지를 않네요.
검색하니깐 아래 코드 처럼 설정하면 된다고 하던데 근데 아래 코드, authenticationManager 메서드 부분이 없어도 CustomAuthenticationProvider 클래스에 @Component 어노테이션 넣으니깐 사용되더라구요... 로그인도 잘되구요.
CustomUserDetailsService 클래스도 마찬가지인데, 아래 authenticationManager 메서드가 없어도 되는건지 궁금합니다.
혹시 나중에 문제가 생기지 않을까 불안하기도 하네요.
답변 부탁드리겠습니다.~
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
ProviderManager authenticationManager = (ProviderManager) authenticationConfiguration.getAuthenticationManager();
authenticationManager.getProviders().add(customAuthenticationProvider());
return authenticationManager;
}
답변 1
1
네
CustomAuthenticationProvider 에 @Component 를 넣게 되면 스프링 시큐리티가 내부적으로 AuthenticationManager 가 관리하는 AuthenticationProvider 타입의 객체로 등록하게 됩니다.
그렇지만 CustomUserDetailsService 는 자동적으로 스프링 시큐리티가 참조할 수 있는 객체로 등록하거나 설정해 주지는 않습니다.
http.userdetailsService(CustomUserDetailsService) 와 같이 설정해 주어야 참조하게 됩니다