• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.03.09 22:49 작성 23.03.09 22:50 수정 조회수 562

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