Spring Security 내부 흐름
스프링 보안 내부 흐름
1. 스프링 보안 필터
일련의 Spring Security 필터는 각 요청을 가로채고 함께 작동하여 인증이 필요한지 여부를 식별합니다.
인증이 필요한 경우 사용자를 로그인 페이지로 이동하거나 초기 인증 시 저장된 기존 세부정보를 사용하세요.
2. 입증 Authentication
Username PasswordAuthenticationFilter와 같은 필터는 HTTP 요청에서 사용자 이름/비밀번호를 추출하고 인증 유형 개체를 준비합니다. 인증은 Spring Security 프레임워크 내에서 인증된 사용자 세부 정보를 저장하는 핵심 표준이기 때문입니다.
3. 인증 관리자 AuthenticationManager
필터로부터 요청을 받으면 사용자 세부 정보의 유효성 검사를 사용 가능한 인증 공급자에게 위임합니다. 앱 내부에는 여러 공급자가 있을 수 있으므로 사용 가능한 모든 인증 공급자를 관리하는 것은 AuthenticationManager의 책임입니다. 인증 공급자
인증 공급자에는 인증을 위해 사용자 세부 정보를 확인하는 모든 핵심 논리가 있습니다.
4. UserDetailsManager/UserDetailsService
UserDetails Manager/UserDetails 서비스는 DB/스토리지 시스템에서 사용자 세부정보를 검색, 생성, 업데이트, 삭제하는 데 도움을 줍니다.
5. PasswordEncoder
비밀번호 인코딩 및 해싱에 도움이 되는 서비스 인터페이스입니다. 그렇지 않으면 일반 텍스트 비밀번호를 사용해야 할 수도 있습니다.
6. SecurityContext
요청이 인증되면 인증은 일반적으로 Security ContextHolder가 관리하는 스레드 로컬 SecurityContext에 저장됩니다.
이는 동일한 사용자의 향후 요청 중에 도움이 됩니다.