이번 포스트에서는 RememberMe 서비스에 대해 살펴보자.
Remember-Me 처리
Remember-Me는 로그인 정보를 쿠키에 저장해 두었다가 나중에 사용하는 기법이다. 쿠키를 안전하게 사용하려면 암호화해야 하고 로그아웃 할 때 쿠키 삭제 등 관리가 필요한데 Spring Security에서는 이 과정을 아주 단순히 처리할 수 있다.
Remember-Me 기능을 이용하기 위해서는 화면단에 단지 remember-me라는 이름의 checkbox가 추가되면 된다.
HttpSecurity 설정
RememberMe 기능 역시 login, logout 처럼 HttpSecurity#rememberMe()에 RememberMeConfigure를 커스터마이징해서 사용한다.
메서드명 |
설명 |
기본 값 |
rememberMeParameter |
체크박스의 name 속성 |
remember-me |
rememberMeCookieDomain() |
사용할 도메인을 설정한다. |
프로젝트 도메인 |
rememberMeCookieName() |
저장될 쿠키의 이름을 설정한다. |
remember-me |
tokenValiditySecond() |
쿠키 유지 기간(초단위) |
2주 = 86400 |
useSecureCookie() |
https에서만 사용할 것인지 설정 |
false |
대부분 기본 값을 쓰면 될것 같다. 다음은 remember-me를 사용하면서 유지기간을 1분으로 설정한 예이다.
동작 확인
이제 login에 성공하면 remember-me라는 이름으로 쿠키가 설치되는 것을 확인할 수 있다.
브라우저를 닫은 후 다시 localhost:8080/admin 페이지를 요청하면 당분간은 login 폼으로 진행하지 않고 바로 admin 페이지가 서비스 된다.
이 상황에서 로그아웃을 하면 자동으로 쿠키를 삭제해주고 로그인 유지도 해제된다.