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

원데이님의 프로필 이미지

작성한 질문수

스프링 시큐리티

SecurityConfig.java 에서 AuthenticationManager 부분에 대한 질문입니다.

작성

·

724

·

수정됨

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) 와 같이 설정해 주어야 참조하게 됩니다