[Spring Security] 기억하기 인증
🔐 스프링 시큐리티
💾 Remember Me 인증
사용자가 웹 사이트나 애플리케이션에 로그인할 때 자동으로 인증 정보를 기억하는 기능이다.
UsernamePasswordAuthenticationFilter와 함께 사용되며, AbsractAuthenticationProcessingFilter 슈퍼클래스에서 훅을 통해 구현된다.
- 인증 성공 시:
RememberMeServices.loginSuccess()를 통해 RememberMe 토큰을 생성하고 쿠키로 전달한다. - 인증 실패 시:
RememberMeServices.loginFail()를 통해 쿠키를 지운다. LogoutFilter와 연계해서 로그아웃 시 쿠키를 지운다.
❓ 훅을 통해 구현된다 “훅을 통해 구현된다”라는 표현은 ‘훅 메서드’패턴을 의미한다.
훅(Hook)이란 기본 동작(이미 정의된)을 변경하거나 확장할 수 있는 지점(특정 위치)을 말한다.
훅 메서드 패턴은 상위 클래스에서 미리 정의된 메서드를 하위 클래스에서 오버라이드하여 특정 동작을 커스터마이징하는 설계 패턴이다.
즉, Remember Me 기능이 인증 처리의 주요 지점에서 동작할 수 있도록, 미리 정의된 메서드(훅)를 통해 구현된다는 의미이다. 이는 코드의 재사용성과 확장성을 높이는 설계 방식이다.
AbstractAuthenticationProcessingFilter는successfulAuthentication()과unsuccessfulAuthentication()메서드를 훅 메서드로 제공한다.
🕰️ RememberMeAuthenticationFilter
SecurityContextHolder에 Authentication이 포함되지 않은 경우 실행되는 필터이다.

참고
Leave a comment