gpt4 book ai didi

Java cookie 在 Firefox 中被删除,但在 Google 或 IE 中未被删除

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:12 32 4
gpt4 key购买 nike

我有以下代码试图从我的浏览器中删除一些 JSESSIONID cookie。

String[] cookieList = "/App1/,/App2/,/App3/".split(",");



for (int i = 0; i < cookieList.length; i++) {

String cookiePathString = cookieList[i];
response.setContentType("text/html");
Cookie cookieToKill = new Cookie("JSESSIONID", "No Data");
cookieToKill.setDomain(getCookieDomainName("myDomain.com"));
cookieToKill.setMaxAge(0);
cookieToKill.setPath(cookiePathString);
cookieToKill.setComment("EXPIRING COOKIE at " + System.currentTimeMillis());
response.addCookie(cookieToKill);
}

该代码在 Firefox 中运行良好,并删除了 JSESSIONID。在 Chrome 和 IE 中则不然。您需要做什么才能使 IE 和 Chrome 的这些 session cookie 过期?

它在运行 Java 7 的 Tomcat 上的 Spring MVC 应用程序中运行

最佳答案

Cookie 完全搞砸了。

服务器的最佳实践:

  1. 使用 Set-Cookie,而不是 Set-Cookie2。
  2. 如果有多个 Cookie,请为每个 Cookie 使用单独的 Set-Cookie header 。
  3. 使用 Expires,而不是 Max-Age。
  4. 使用日期格式:Sun, 06 Nov 1994 08:49:37 GMT

例如:

Set-Cookie: JSESSIONID=NO_DATA; Path=/App1/; Domain=myDomain.com; Expires=Thu, 01 Jan 1970 00:00:00 GMT

我可以建议你做什么:

  1. Cookie 值中不要有空格。
  2. 调用cookie.setVersion(0);

如果仍然不行,请忘记Cookie类,尝试手动设置http header

response.addHeader("Set-Cookie", 
"JSESSIONID=NO_DATA; Path=/App1/; Domain=myDomain.com; Expires=Thu, 01 Jan 1970 00:00:00 GMT");

关于Java cookie 在 Firefox 中被删除,但在 Google 或 IE 中未被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869060/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com