UsernamePasswordAuthenticationFilter
와 같은 필터는 HTTP
요청에서 username
과 password
를 추출해 Authentication
타입 객체를 준비한다.POST
방식으로 넘어 왔는지, username
과 password
가 null
인지 등등을 체크한다.SecurityContextHolder
가 관리하는 스레드 로컬 SecurityContext
에 저장된다.✅
UsernamePasswordAuthenticationFilter
필터는 기본적으로/login
URL에 응답한다.
AuthenticationManager
는 요청 받은 사용자의 세부 정보를 유효성 검사하기 위해서 요청을 Authentication provider
들에게 위임한다.CRUD
를 메서드를 갖고 있는 인터페이스UserDetailsManager
를 상속받아서 사용한다.UserDetails
객체를 받는다.UserDetails
객체를 반환한다.DAO(Data Access Object)
객체로서의 역할을 한다.loadUserByUsername()
PasswordEncoder
가 처리한다.UserDetailsService
와 UserDetailsManager
인터페이스에서 사용되는 객체[Spring Security] UserDetailsService와 UserDetails 및 Authentication의 차이점
Spring Security 전체 흐름 살펴보기
[Spring Security] 스프링 시큐리티란?