Spring Security - Remember me, 자동 로그인 API, RememberMeAuthenticationFilter
2021. 4. 15. 14:18ㆍSPRING/SPRING SECURITY
사용 예제
1
2
3
4
5
6
7
|
http
.rememberMe()
.rememberMeParameter("remember") // rememberme 파라미터. 기본값은 remember-me
.tokenValiditySeconds(3600) // 유효기간 설정. 기본값은 14일
.alwaysRemember(true) // 사용자가 remember me를 체크하지 않아도 true이면 항상 remember me 작동.
.userDetailsService(userDetailsService) // 사용자 정보를 조회함. 정보를 어디에 저장했느냐에 따라 다양한 구현체 존재.
;
|
cs |
RememberMeAuthenticationFilter 흐름
RememberMeAuthenticationFilter가 동작하는 조건
1. 쿠키에 세션정보가 없다. (세션이 만료됐거나 로그아웃 등에 의해 세션 종료된 경우)
2. remember me 쿠키 정보가 있다.
동작 순서
- 사용자가 Remember me를 체크하고 로그인한다.
- 서버는 클라이언트에게 Remeber me 쿠키에 토큰을 세팅하여 응답한다. 토큰은 username, password, 만료기간 등 정보가 암호화되어 인코딩된다.(암호화 알고리즘은 MD5로 확인.)
- 사용자 세션이 종료되고 다시 서버에 요청을 한다.
- RememberMeServices에서 일단 Remember me 쿠키의 토큰정보를 추출한다.
- 토큰을 디코딩하고 서버에 저장되었던 토큰과 일치하는지, 사용자 정보가 있는지 확인한다.
- 데이터가 정상이면 새로운 인증객체를 생성하고 클라이언트에게 다시 세션정보를 쿠키에 담아준다.
'SPRING > SPRING SECURITY' 카테고리의 다른 글
Spring Security - 동시 세션 제어 API (0) | 2021.04.15 |
---|---|
Spring Security - 익명 사용자 인증, AnonymousAuthenticationFilter (0) | 2021.04.15 |
Spring Security - Logout 흐름, LogoutFilter (0) | 2021.04.15 |
Spring Security - Logout API (0) | 2021.04.15 |
SPRING SEQURITY - Form Login 인증 흐름, AuthenticationFilter (0) | 2021.04.15 |