새소식

반응형
Java/Spring Boot

[Spring Security] LogoutFilter

  • -
728x90
반응형

LogoutFilter 란?

LogoutFilter는 Spring Security 에서 로그아웃에 대한 처리를 담당하는 필터로 사용자가 특정

로그아웃 URL로 로그아웃을 요청 했을 경우에만 적용되는 필터이다.

 

LogoutFilter는 세션 무효화, 인증토큰 삭제 등 Security Context에서 해당 인증 객체를 삭제한다.

 

아래는 LogoutFilter 클래스와 doFilter 메서드이다.

 

requiresLogout() 메서드를 통해 요청된 URL이 로그아웃 URL인지 확인한다.

아래는 requiresLogout 메서드이다.

 

RequestMatcher 의 matches 를 통해 URL 정보를 확인하고 맞으면 true 를 리턴한다.

 

로그아웃 URL 이 맞을 경우SecurityContextHolder 에서 Authentication 인증 객체를 불러온다.

 

LogoutFilter 의 doFilter 메서드

가져온 인증객체를 this.handler 인 LogoutHandler 를 통해 로그아웃 로직을 진행한다.

 

아래는 LogoutHandler의 Logout Hanlder는 기본적으로 인터페이스를 구현한 CompositeLogoutHandler 이다.

 

 

CompositeLogoutHandler 는 LogoutHandler 를 구현한 전체 클래스들의 리스트를 List<LogoutHandelr> 형태로

가지고 있다.

List<LogoutHandler> 를 반복하여 LogoutHandler를 구현한 클래스들의 logout 메서드를 호출 후

쿠키 삭제, SecurityContext 에서 인증객체 삭제 등 로그아웃 로직을 수행한다.

List<LogoutHanlder> 의 내용은 아래와 같다.

 

 

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.