
인증관리자
AuthenticationManager 클래스(인터페이스)
인증 처리하는 필터로부터 인증처리를 지시받는 첫번째 클래스이다
AuthenticationManager의 구현체가 ProviderManager이다.
인증처리를 하지 않고 인증처리를 위임한다.
AuthenticationManager 목록 중에 인증 처리 요건에 맞는
인증처리자(ProviderManager)를 찾아 인증처리를 위임하는 클래스이다.
여러개의 ProviderManager 클래스 객체들을 가지고 있다.
이 객체들 중 하나를 찾아서 위임하게 된다.
Authentication Manager 작동 순서
Authentication Manager 역할은 단순하다
인증처리를 할 Provider 객체를 찾아서 인증처리를 위임하는 일을 한다.
사용자의 로그인 요청
방식
1-1 Form 인증
1-2 RememberMe 인증
1-3 Oath 인증
인증 방식에 적합한 Provider를 찾아 위임하는게 인증 매니저.
하지만 인증에 적합한 Provider가 없다?
(요약 : 부모에게 저장되어있는 Provider를 찾아위임한다)
해당 인증 방식의 필터가 ProviderManager에게 인증처리 위임.
ProviderManager가 인증에 적합한 Provider를 찾는데(자기가 가진것중에) 없다
ProviderManager는 Parent 속성이 있다.
Manager타입의 속성을 저장할 수 있는 특징.
Parent 특징에게는 ProviderManager 타입의 객체를 저장할 수 있다.
스프링 시큐리티가 초기화될 때 ProviderManager 타입의 객체를 저장할 수 있다.
부모속성에 저장되어있는 ProviderManager까지 인증에 적합한 Provider를 찾는다.
부모속성이 가지고 있는 Provider에게 인증을 위임한다.
(자동으로 찾는다는 거지)