Published 2023. 4. 13. 22:31
RememberMe 인증 과정 간단 설명
RememberMeAuthenticationFilter
SecurityContext 안에 Authentication이 없고 RememberMe 쿠키가 있는 경우 RememberMeAuthenticationFilter가 동작하게 된다.
RememberMeService
RememberMeService는 구현체가 두개가 있다.
- TokenBasedRememberMeServices : 메모리에서 저장한 토큰과 사용자가 요청한 토큰을 비교해서 인증처리한다.
- PersistentTokenBasedRememberMeServices : DB에 토큰을 저장하고 요청한 토큰과 비교해서 인증처리한다.
RememberMe 인증 과정 코드
1. JSESSIONID이 있으면 아무리 새로고침을 해도 RememberMeAuthenticationFilter 가 동작하지 않는다.
2. RememberMeAuthenticationFilter가 동작하면 doFilter()에서 autoLogin() 를 호출해서 rememberMe가 있는지 체크한다.
3. rememberMe 존재해서 authenticate() 메소드를 호출해 인증객체를 만들고 SecurityContext에 다시 셋팅해주는 것을 확인할 수 있다.
4. JSESSIONID을 삭제했지만 3에서 인증한 객체를 SecurityContext에 셋팅해줬기에 JSESSIONID이 다시 생긴것을 확인할 수 있다.
'무조건 따라하기 > Spring Boot 기반 Security' 카테고리의 다른 글
Spring Boot 기반으로 개발하는 Spring Security : 동시 세션 제어, 세션 고정 보호, 세션 정책 (0) | 2023.04.15 |
---|---|
Spring Boot 기반으로 개발하는 Spring Security : AnonymousAuthenticationFilter (0) | 2023.04.15 |
Spring Boot 기반으로 개발하는 Spring Security : Remember Me 인증 (0) | 2023.04.13 |
Spring Boot 기반으로 개발하는 Spring Security : LogoutFilter (0) | 2023.04.11 |
Spring Boot 기반으로 개발하는 Spring Security : UsernamePasswordAuthenticationFilter (0) | 2023.04.10 |