IT모아

스프링 시큐리티 - 로그아웃 본문

Spring(스프링)/시큐리티

스프링 시큐리티 - 로그아웃

아롱사태남 2015.09.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 구현체에 대한 빈 레퍼런스 

 

 


0 Comments
댓글쓰기 폼