SecurityContextPersistenceFilter
- SecurityContext 객체의 생성, 저장, 조회를 담당하는 Filter이다
- 익명사용자
- 새로운 SecurityContetxt 객체를 생성하여 SecurityContextHolder에 저장
- AnonymousAuthenticationFilter에서 AnonymousAuthenticationToken 객체를 SecurityContext에 저장함.
- 인증 시
- 새로운 SecurityContetxt 객체를 생성하여 SecurityContextHolder에 저장
- 인증이 최종 완료가 되면 Session에 SecurityContext를 저장.
- 인증 후
- Session에서 SecurityContext 꺼내어 SecurityContextHolder 에 저장
- SecurityContext 안에 Authentication 객체가 존재하면 계속 인증을 유지함.
- 최종 응답 시 공통
- SecurityContext.Holder.clearContext() 메소드를 수행하여 인증 객체를 초기화 시킴.
- 익명사용자
SecurityContextPersistenceFilter Flow
- 먼저 인증을 받지 않는 유저가 접근 시 진행 되는 과정을 설명
- 사용자가 요청시 SecurityContextPersistenceFilter가 수행됨.
- SecurityContextPersistenceFilter 에 있는 HttpSecurityContextRepository 가 인증여부를 검토함.
- 인증이 없으니 새로운 SecurityContext를 SecurityContextHolder에 생성.
- 인증 과정을 거치고 난후, 인증이 된 SecurityContext를 SecurityContextHolder 에 저장.
- 이후 해당 SecurityContext를 Session에 저장시킴.
- 요청시 끝날시에 SecurityContextHolder에 있는 정보들을 초기화 시킴.
- 인증을 받고 난후의 과정을 설명
- 사용자가 요청시 SecurityContextPersistenceFilter가 수행됨.
- SecurityContextPersistenceFilter 에 있는 HttpSecurityContextRepository 가 인증여부를 검토함.
- 인증이 되어 있으니 Session에서 SecurityContext 객체를 꺼내와서 SecurityContextHolder에 저장함.
'Backend > Security' 카테고리의 다른 글
Authorization (인가), FilterSecurityInterceptor (0) | 2023.01.22 |
---|---|
AuthenticationManager, AuthenticationProvider (0) | 2023.01.22 |
SecurityContextHolder, SecurityContext (1) | 2023.01.21 |
Authentication (0) | 2023.01.18 |
필터 초기화와 다중 보안 설정 (0) | 2023.01.18 |