每当我们按下Logout并破坏会话时,如何从浏览器中删除Cookie?

时间:2012-12-11 16:18:20

标签: java javascript spring jquery-mobile spring-security

我使用Jquery Mobile,Spring MVC和Spring Security开发了一个移动应用程序。

每当我登录应用程序时,Cookie都会生成并存储在浏览器中。

每当我注销应用程序时,会话都会被销毁,但Cookie会出现在浏览器中。

我的问题是,如果浏览器中有Cookie,则应用程序不会在运行IOS 6.0.1的IPad上运行。

当我按下Logout并销毁会话时,如何从浏览器中删除cookie。

1 个答案:

答案 0 :(得分:0)

您可能希望在session management.的注销处理程序中使用delete-cookies属性,我从文档中引用:

<http>
    <!-- ... -->
    <logout delete-cookies="JSESSIONID" />
</http>

您可以使用逗号指定多个cooke。但文档也发出警告:

  

不幸的是,这不能保证与每个servlet一起使用   容器,所以你需要在你的环境中测试它

另外,请考虑代理:

  

如果您在代理服务器后面运行应用程序,那么您也可能是   能够通过配置代理服务器来删除会话cookie。对于   例如,使用Apache HTTPD的mod_headers,以下指令   会通过在响应中将它到期来删除JSESSIONID cookie   注销请求(假设应用程序部署在路径下   /教程):

 <LocationMatch "/tutorial/j_spring_security_logout">
  Header always set Set-Cookie "JSESSIONID=;Path=/tutorial;Expires=Thu, 01 Jan 1970 00:00:00 GMT"
 </LocationMatch>