해당 게시글은 Spring Security의 이해를 위해서 작성했다.
Spring Security INTERNAL FLOW
Spring Security Filter : 사용자 측에서 보내는 request들을 확인하여 인증이 필요 여부를 확인한다. 필요하다면 login page로 보내거나 저장 되어있는 정보를 확인한다.
Authentication : UsernamePasswordAuthenticationFilter가 http로 부터 username, password를 추출하며 Authentication 타입의 객체를 준비한다.
AuthenticationManger : 사용가능한 AuthenticationProviders를 관리하며 책임진다.
AuthenticationProvider : 인증 비즈니스 로직들을 구성하는 곳이다. 대표적으로 UserDetailsManager/UserDetailsService, PasswordEncoder를 생각하자.
UserDetailsManager/UserDetailsService : DB나 저장소로부터 UserDetails을 create, update, delete, retrive를 도와준다.
PasswordEncoder : 암호화 복호화 기능을 지원해 준다.
Security Context : request의 인증 절차가 완료되면 해당 인증은 Thread-Local SecurityContextHolder에 의해 관리되는 SecurityContext에 저장된다. 이후 동일한 사용자의 다음 요청에 대해서 도움을 준다.
'개발 > Spring' 카테고리의 다른 글
[Security] 시큐리티 세션정책 (0) | 2023.01.05 |
---|---|
SecurityFilterChain을 작성해보자 (0) | 2023.01.02 |
Spring Security 기본 정리 (0) | 2022.12.30 |
Spring Security - Filter, OncePerRequestFilter 정리해보자 (0) | 2022.12.30 |
Spring Boot + JPA + H2 (0) | 2022.12.26 |