728x90
필터는 스프링 컨테이너 밖에서 동작한다. 하지만 DelegatingFilterProxy를 활용하여 bean을 등록하여 스프링에서 사용 할 수 있다.

- HttpServletRequest가 들어옴
- UsernamePasswordAuthenticationToken(username과 password를 담고있는)를 발급
- UsernamePasswordAuthenticationToken을 AuthenticationManager로 전달.(보통 AuthenticationManager의 구현체로 ProviderManager 사용)
- AuthenticationManager.authenticate가 호출되며 AuthenticationProvider안에 있는 authenticate 로직이 호출 됨. (AuthenticationProvider는 여러개 있을 수 있음.) 이때 실제 인증이 실행
- userDetailsService를 상속받아 직접 구현해야한다.
728x90