【发布时间】:2011-12-07 19:56:55
【问题描述】:
我正在尝试使安全访问的 servlet 中的不安全 cookie 无效/过期,并将重定向发送回客户端。但是,当遵循重定向时,请求仍然包含原始的、未过期的、未验证的(是那个词)cookie。
以下是对流程的更详细说明:
1) 客户端请求由 Servlet A 支持的特定不安全 url。
2) Servlet A 检测到存在 Cookie XX 并重定向到由 Servlet B 支持的安全 url
3) Servlet B 施展魔法,然后通过将 MaxAge 设置为 0 使 Cookie XX 无效,并通过不安全的 url 重定向到 Servlet A。
4) 在 Servlet A 中,我仍然能够像在第一个请求中一样访问 cookie。
有人可以帮忙吗?我的印象是,找不到相反的证据表明,当一个 cookie 用重定向响应发回时,它仍然在新请求发出之前被处理。这发生在我可以访问的所有浏览器(Chrome、FF、IE)中,所以我不认为它是浏览器的事情。在 HTTPFox 和 Chrome 开发人员工具中,我可以看到在第一个和第二个请求中发送了原始 cookie,在对第二个请求的响应中返回了无效的 cookie,并且在第三个请求中再次发送了原始 cookie。我尝试将 MaxAge 设置为 0,将 cookie 的值设置为 null/空字符串,以及另一个值,但它永远不会改变。如果重要的话,所有的服务器端代码都是用 Java 完成的。
非常感谢您的帮助。
【问题讨论】: