
UsernamePasswordAuthenticationFilter가 해당 요청을 전달 받음.UsernamePasswordAuthenticationFilter는 Username과 Password를 이용해 UsernamePasswordAuthenticationToken 을 생성합니다. 이 토큰은 Authentication 인터페이스를 구현한 구현 클래스이며, 여기서 Authentication은 ⭐ 아직 인증 되지 않은 Authentication 인 것을 기억해야 함.Authentication을 가지고 있는 UsernamePasswordAuthenticationFilter는 Authentication을 AuthenticationManager에게 전달함.AuthenticationManager는 인증 처리를 총괄하는 인터페이스이고, 이 매니저를 구현한 클래스가 바로 ProviderManager 이다.ProviderManager가 인증이라는 작업을 총괄하는 실질적인 매니저임. 하지만 현실 세계에서의 매니저처럼 Spring Security의 ProviderManager 역시 직접 인증을 처리하는 것이 아니라 AuthenticationProvider에게 인증 처리를 대신 맡김.ProviderManager로부터 Authentication을 전달.UserDetailsService를 이용해 UserDetails를 조회 함. UserDetails는 데이터베이스 등의 저장소에 저장된 사용자의 Username과 사용자의 자격을 증명해 주는 크리덴셜(Credential) 인 Password, 그리고 사용자의 권한 정보를 포함하고 있는 컴포넌트이다. 그리고 이 UserDetails를 제공하는 컴포넌트가 UserDetailsService 이다.수업 도중