[Spring Security] 기억하기 인증

🔐 스프링 시큐리티

  1. 기본 용어
  2. 아키텍처
  3. 인증 아키텍처
  4. 인증 영속성
  5. 예외 처리
  6. 폼 기반 인증
  7. 기억하기 인증
  8. 인증 간 요청 저장
  9. 인가 아키텍처
  10. 요청 수준 인가 & 메소드 수준 인가

💾 Remember Me 인증

사용자가 웹 사이트나 애플리케이션에 로그인할 때 자동으로 인증 정보를 기억하는 기능이다.
UsernamePasswordAuthenticationFilter와 함께 사용되며, AbsractAuthenticationProcessingFilter 슈퍼클래스에서 훅을 통해 구현된다.

  • 인증 성공 시: RememberMeServices.loginSuccess()를 통해 RememberMe 토큰을 생성하고 쿠키로 전달한다.
  • 인증 실패 시: RememberMeServices.loginFail()를 통해 쿠키를 지운다.
  • LogoutFilter와 연계해서 로그아웃 시 쿠키를 지운다.

❓ 훅을 통해 구현된다 “훅을 통해 구현된다”라는 표현은 ‘훅 메서드’패턴을 의미한다.
훅(Hook)이란 기본 동작(이미 정의된)을 변경하거나 확장할 수 있는 지점(특정 위치)을 말한다.
훅 메서드 패턴은 상위 클래스에서 미리 정의된 메서드를 하위 클래스에서 오버라이드하여 특정 동작을 커스터마이징하는 설계 패턴이다.
즉, Remember Me 기능이 인증 처리의 주요 지점에서 동작할 수 있도록, 미리 정의된 메서드(훅)를 통해 구현된다는 의미이다. 이는 코드의 재사용성과 확장성을 높이는 설계 방식이다.
AbstractAuthenticationProcessingFiltersuccessfulAuthentication()unsuccessfulAuthentication() 메서드를 훅 메서드로 제공한다.


🕰️ RememberMeAuthenticationFilter

SecurityContextHolderAuthentication이 포함되지 않은 경우 실행되는 필터이다.

RememberMeAuthenticationFilter

참고

Leave a comment