Spring Security
[Security] Logout 처리 필터 (LogoutFilter)
cornarong
2021. 10. 4. 22:43
원칙적으로 로그아웃 시 스프링 시큐리티에서는 post 요청을 처리한다.
logout을 실행하면 logout 처리와 logout과 관련된 요청을 처리하는 필터가 LogoutFilter이다.
전체적인 로그아웃 처리의 흐름을 살펴보자.
사용자가 로그아웃을하면 post방식으로 요청을 하고 LogoutFilter가 요청을 받는다.
AntPathRequestMatcher(/logout)에서 해당 경로로 요청한 것이 맞는지 매칭을 한다.
매칭 실패 시 chain.doFilter을 호출하게 되고 (Default는 "/logout" 이다.)
매칭 성공시 인증 객체를 담고 있는 SecurityContext에서 인증 객체를 꺼내 SecurityContextLogoutHandler 로 전달한다.
SecurityContextLogoutHandler에서 세션 무효화, 쿠키 삭제, SecurityContext초기화 작업등을 진행한다.
정상적으로 SecurityContextLogoutHandler가 종료되면 LogoutFilter는 SimpleUrlLogoutSuccessHandler를 호출하여
로그인 페이지로 이동하도록 Redirect 한다.