-
스프링 시큐리티 - 로그아웃Spring(스프링)/시큐리티 2015. 9. 27. 23:26
로그아웃 동작 원리
모든 URL 요청은 서블릿 요청으로 리졸브 되기 전에 항상 스프링 시큐리티의 전체 필터 체인을 통과 시킵니다. 따라서 j_spring_security_logout에 대한 URL 요청이 시스템에 있는 JSP 페이지와 일치하지 않더라도 이 요청을 처리하기 위해 실제 JSP 나 스프링 MVC 대상 URL을 두지 않아도 됩니다.
j_spring_security_logout 에 대한 URL 요청은 logoutFilter가 가로챕니다.
logout-url 어트리뷰트에 지정한 로그아웃 URL을 감시하고 사용자를 로그아웃 시키는데 이때 다음 과정은 3단계로 나뉘어 집니다.
1. HTTP 세션 무효화(invalidate-session이 true로 설정된 경우)
2. SecurityContext 초기화(사용자를 실제로 로그아웃시키는 부분)
3. logout-success-url에 지정된 URL로의 사용자 리다이렉트
다음 다이어그램을 보면 로그아웃 과정이 동작하는 원리를 쉽게 이해하실 수 있을겁니다.
어트리뷰트
설명
invalidate-session
true로 설정되면 사용자의 HTTP 세션이 사용자가 로그아웃할 때 무효화된다. 일부 경우(예를들어 사용자의 쇼핑 카트 관리)에는 이를 사용하지 않는것이 좋다
logout-succesfs-url
LogoutFilter 가 읽는 URL
success-handler-ref
LogoutSuccessHandler 구현체에 대한 빈 레퍼런스
'Spring(스프링) > 시큐리티' 카테고리의 다른 글
스프링 시큐리티 설정 이모저모 (0) 2018.09.05 스프링 시큐리티 JDBC 를 이용한 로그인(1) (7) 2015.10.04