사용자가 로그 아웃 할 때 쿠키 JSESSIONID를 삭제해야합니다. 내 보안 설정에 다음 설정을 추가 한하려면 :SpringSecurity : JSESSIONID를 삭제하지 못했습니다.
<http>
<form-login login-page="/login*" authentication-failure-url="/login?try_again" />
<http-basic />
<logout logout-url="/logout" delete-cookies="JSESSIONID" />
<session-management invalid-session-url="/timeout" />
<intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
...
</http>
그러나 대신 삭제되는 쿠키는 중복되었다한다 : 그래서 그것을
브라우저를 "/ timeout"URL로 리디렉션합니다.
내가 크롬 웹 브라우저의 개발자 도구를 사용하여 무슨 일이 일어나고 있는지 추적했는데, 나는이 쿠키는이 응답 헤더로 설정하는 것을 발견:
Set-Cookie:JSESSIONID=CFF85EA743724F23FDA0317A75CFAD44; Path=/website/; HttpOnly
그리고이 응답 헤더 삭제합니다
Set-Cookie:JSESSIONID=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/website
잘 모르겠지만 이유는이 헤더의 "경로"필드에있는 것처럼 보입니다. 첫 번째 페이지는 "/ website /"를 가리키고 두 번째 페이지는 "/웹 사이트 ".
설명 된 문제의 원인입니까? 이유가 아닌 경우 (또는 유일한 이유가 아닌 경우), 다른 이유는 무엇입니까? 이 문제를 어떻게 해결해야합니까?
참조 http://static.springsource.org/spring-security/site/docs/3.2.x/reference/springsecurity-single.html#ns-session- mgmt (3.3.3 절) ... 유감스럽게도 모든 서블릿 컨테이너에서 작동한다는 보장은 없으므로 환경에서 테스트해야합니다. 관련 각주도 참조하십시오. – Ritesh