我需要在用戶註銷時刪除cookie 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>
但是,而不是被刪除,cookie將被剛剛成爲複製:
所以一直將瀏覽器重定向到「/ timeout」URL。
我試圖追查這是怎麼回事使用Chrome網絡瀏覽器的開發者工具,我發現,這個cookie建立與此響應頭:
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節)...不幸的是,這不能保證與每個servlet容器一起工作,所以你需要在你的環境中測試它。另請參閱相關的腳註。 – Ritesh 2013-04-11 12:47:12