ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 시큐리티 - 로그아웃
    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 구현체에 대한 빈 레퍼런스 

     

     


Designed by Tistory.