작성
·
158
0
안녕하세요. 강사님
AbstractJaasAuthenticationProvider class도 AbstractUserDetailsAuthenticationProvider class도
UsernamePasswordAuthenticationToken 을 처리할 수 있는데, 어떻게 DaoAuthenticationProvider 만 선택되어 처리되는 건가요?
감사합니다
답변 1
0
네
스프링 시큐리티가 초기화 되면서 기본적으로 등록하는 AuthenticationProvider 가 있는데 그 중 하나가 DaoAuthenticationProvider 입니다.
그리고 이것은 Form 인증 때 사용되어 집니다.
말씀하신 AbstractJaasAuthenticationProvider 를 사용하도록 인증방식을 설정해야 스프링 시큐리티가 AbstractJaasAuthenticationProvider 를 등록할 것입니다.
즉 JAAS(Java Authentication and Authorization Service) 인증방식을 설정클래스에 지정해야 함을 의미합니다
그렇게 되면 스프링 시큐리티가 AbstractJaasAuthenticationProvider 의 구현체인 JaasAuthenticationProvider 를 등록해서 JAAS 인증을 처리하게 됩니다.
그리고 만약 Form 인증과 JAAS 인증을 동시에 설정했다면 스프링 시큐리티가 인증방식의 여러 조건을 검사한 후에 가장 적합한 인증방식 하나를 결정해서 처리하게 됩니다.
참고로 AbstractUserDetailsAuthenticationProvider 는 DaoAuthenticationProvider 의 부모 클래스입니다.