Remember Me 인증

📝 Remember Me 인증

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

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    private final UserDetailsService userDetailsService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //인가 정책
        http
                .authorizeRequests()
                .anyRequest().authenticated();

        //인증 정책
        http
                .formLogin()
                ;

        http
                .rememberMe() //
                .rememberMeParameter("remember") // 기본 파라미터명
                .tokenValiditySeconds(3600) // default : 14일
                .userDetailsService(userDetailsService);
        ;
    }
}
  • http.userDetailsService는 시스템 사용자 계정을 조회하는 처리과정에서 필요한 설정이다.

 

📝 아키텍처

| 해당 필터 작동 조건

  • 1.Authencation 이 null일 경우 작동한다
  • 2.Remember-me 쿠키를 가지고 있는 경우

 

| RememberMeService : Remember-me 토큰인지 검사

  • TokenBasedRememberMeServices
  • PersistentTokenBasedRememberMeServices : DB의 값과 비교하여 인증처리하는 클래스

댓글

Designed by JB FACTORY