관리 메뉴

드럼치는 프로그래머

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

★─Programing/☆─WebProgram

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

드럼치는한동이 2017. 4. 14. 11:06

로그아웃 동작 원리

모든 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 구현체에 대한 빈 레퍼런스 

 

 



출처: http://itmore.tistory.com/entry/스프링-시큐리티-로그아웃 [IT모아]

Comments