반응형
로그아웃 동작 원리
모든 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 구현체에 대한 빈 레퍼런스 |
|
|
반응형
'IT > Spring' 카테고리의 다른 글
Spring에서 JNDI설정(hikaricp) (0) | 2018.02.27 |
---|---|
RESTful API 에러 처리 팁 (0) | 2018.02.06 |
[SPRING,JAVA] 프레임워크에 Ajax사용을 위한 JsonView 설정하기, Spring Framework JsonView Ajax Sample (0) | 2018.01.30 |
Restful 이란 무엇인가 (0) | 2018.01.19 |
스프링(Spring) MVC 프레임워크(Model View Controller Framework) (1) | 2018.01.12 |