해결된 질문
작성
·
430
1
AuthController에서 38번 행의authenticationManagerBuilder.getObject().authenticate(authenticationToken); 을 진행했을 때 CustomUserDetailsService의 loadUserByUsername가 실행된다고 했는데, 호출하지 않았는데 어떻게 실행되는건가요?? ㅠㅠ
답변 1
2
인증으로 사용하는 컨트롤러 : AuthController.java authorize()
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
이 부분에서 호출되면서 loadUserByUsername 함수를 호출해요.
호출 순서에요 (디버그로 확인)
1.AuthController.authorize() --> 현재 사용자가 만든 인증 컨트롤러
2.ProviderManager.authenticate() --> 스프링 내부 라이브러리
3.AbstractUserDetailsAuthenticationProvider.authenticate() --> 스프링 내부 라이브러리
4.DaoAuthenticationProvider.retrieveUser() --> 스프링 내부 라이브러리
5.CustomUserDetailsService.loadUserByUsername() --> 현재 사용자가 만든 사용자 정보 조회 및 인증데이터 입력
package org.springframework.security.authentication.dao;
DaoAuthenticationProvider.java
자세한 설명 감사합니다! 저도 확인해 보도록 할게요! 좋은 하루 되세요~