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이 다시 생긴것을 확인할 수 있다.

복사했습니다!