본문 바로가기
Framework/Spring Framework

[Spring Boot] Spring Security Remember Me 인증

by 원동호 2021. 5. 3.
반응형

개념

  • 세션이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능
  • Remember-Me 쿠키에 대한 Http 요청을 확인한 후 토큰 기반 인증을 사용해 유효성을 검사하고 토큰이 검증되면 사용자는 로그인 된다.

 

HttpSecurity

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.rememberMe()
            .rememberMeParameter("remember") // 기본 파라미터명은 remember-me
            .tokenValiditySeconds(3600) // default : 14 days
            // default : false, remember-me 기능이 활성화되지않아도 항상 실행
						.alwaysRemember(true)
						// 사용자 계정 조회에 필요한 Class
            .userDetailsService(userDetailsService)
}

 

처리 Process

RememberMeAuthenticationFilter가 동작 하는경우

  • SecurityContext에 Authentication 객체가 NULL 일 경우(세션이 만료되었거나 끊겼을 경우)
  • Client가 remember-me cookie를 요청할 경우

 

TokenBasedRememberMeServices

→ 메모리에서 저장한 쿠키값과 Client가 요청한 쿠키 값을 비교

 

PersistentTokenBasedRememberMeServices

→ 영구정인방식(DB에 쿠키값 저장)으로 DB에 저장한 값과 Client가 요청한 값을 비교

반응형

댓글