Joa*_*uer 39
造成这种情况的一个可能原因是具有"裸"主机名(即没有域部分的主机名).如果您在Intranet中工作,这是相当普遍的.
问题是几乎所有的浏览器cookie都不接受没有域名的主机名的cookie.这样做是为了防止evilsite.com设置Cookie com(这将是糟糕的,因为它将是最终的跟踪cookie).
因此,如果您通过http://examplehost/它访问您的应用程序将不接受任何cookie,而http://examplehost.localdomain/它将接受(并返回)cookie就好了.
令人讨厌的是,服务器无法区分"浏览器获取cookie并忽略它"和"浏览器从未获得cookie".因此,每个单一访问对服务器来说都是一个全新的sesson.
Min*_*Soe 24
多年以后,我从来没有在这里发布答案.那时我很忙,忘记了这个问题.但是,今天我像往常一样在Stackoverflow中寻找解决方案,看到这个通知提到我从这个问题得到了积分.似乎其他开发人员面临同样的问题.所以,我试着回忆起我是如何解决这个问题的.是的,我通过手动放回会话ID来跟踪/维护会话ID解决了.
请查看我在servlet中手动放回jsessionid的代码.
HttpSession session = request.getSession();
if (request.getParameter("JSESSIONID") != null) {
Cookie userCookie = new Cookie("JSESSIONID", request.getParameter("JSESSIONID"));
response.addCookie(userCookie);
} else {
String sessionId = session.getId();
Cookie userCookie = new Cookie("JSESSIONID", sessionId);
response.addCookie(userCookie);
}
Run Code Online (Sandbox Code Playgroud)
In Your properties
server.session.cookie.http-only=true
server.session.cookie.secure=true
Run Code Online (Sandbox Code Playgroud)
删除这些设置,它将保留您的会话 ID cookie,每次请求都会重置它。
首先检查是否web应用程序的context.xml并没有都cookies="false"配置。
此外,很高兴知道cookie是依赖于域,端口和上下文路径的。如果页面中的链接指向与当前请求URL(您在浏览器的地址栏中看到的URL)相对的其他域,端口和/或上下文路径,则该cookie将不会通过,这将导致会话无法再被识别,因此您将从servlet容器中获得一个新会话。
如果不是这个原因,请检查您是否由于某种原因未对每个请求进行重定向。如果您在第一个请求中已经这样做,那么cookie将丢失。您需要更换HttpServletResponse.sendRedirect()
response.sendRedirect(url);
Run Code Online (Sandbox Code Playgroud)
通过
response.sendRedirect(response.encodeRedirectURL(url));
Run Code Online (Sandbox Code Playgroud)
由于安全标志,我遇到了过时的 https 会话 cookie(我的临时术语)问题。
我在http和https之间切换时遇到了这个问题。https 会话存储的 cookie 永远不会被 http 会话覆盖。它永远保留在 FireFox 的内存中。它在 FireFox工具/选项/隐私/删除单个 cookie中可见,其中“发送”字段中的“仅用于安全连接”。清除此单个 cookie 或所有 cookie 是一种解决方法。
我正在使用 wget 调试问题,我注意到这样一个标头:
Set-Cookie: JSESSIONID=547ddffae0e5c0e2d1d3ef21906f; Path=/myapp; Secure; HttpOnly
Run Code Online (Sandbox Code Playgroud)
“安全”一词仅出现在 https 连接中并创建此过时的 cookie。它是一个 SecureFlag(请参阅OWASP)。有多种方法可以在服务器端禁用此标志,这似乎是一个永久的解决方案,但可能不安全。
或者这是一个浏览器错误,cookie 没有被覆盖?
| 归档时间: |
|
| 查看次数: |
74614 次 |
| 最近记录: |