SecurityContextPersistenceFilter 는 HttpRequest 와 HttpResponse 를 wrapping 한 HttpRequestResponseHolder 를 SecurityContextRepository 에게 전달하여 SecurityContext 를 반환받습니다.
-
접속정보가 없으면 SecurityContext 를 새로 생성합니다.
-
접속정보가 있으면 SecurityContextRepository 로부터 SecurityContext 를 가져옵니다.
- 저장 장소는 기본적으로 HttpSessionSecurityRepository 이며, 이 클래스는 HttpSession 에 SecurityContext 를 저장합니다.
-
HttpSessionSecurityRepository 의 loadContext 는 session 으로부터 SecurityContext 를 읽어옵니다.
- 로그인전이라면 HttpSession 에 정보가 없으니 빈 SecurityContext 를 생성해줍니다.
- 인증 절차를 마친 후에 SecurityContext 를 삭제하고, SecurityContextRepository 에 SecurityContext 를 저장합니다.
- ThreadLocal 을 이용하여 SecurityContext 를 공유하고, thread pool 을 이용해 쓰레드를 재사용하기 때문에 삭제를 해주지 않으면 다른 사용자의 정보가 들어있을지도 모릅니다.
- ThreadLocal 을 이용하여 SecurityContext 를 공유하고, thread pool 을 이용해 쓰레드를 재사용하기 때문에 삭제를 해주지 않으면 다른 사용자의 정보가 들어있을지도 모릅니다.
'Spring > Spring Security' 카테고리의 다른 글
Spring Security (7) - ExceptionTranslationFilter (0) | 2020.12.14 |
---|---|
Spring Security (6) - LogoutFilter (0) | 2020.12.09 |
Spring Security (4) - 기본설정과 JPA 연동 (0) | 2020.09.15 |
Spring Security (3) - Authentication (0) | 2020.09.09 |
SpringSecurity - Test 작성 (0) | 2020.09.07 |