繁体   English   中英

JSESSIONID cookie没有存储在浏览器中

[英]JSESSIONID cookie is not stored in browser

在不同的情况下, JSESSIONID cookie存在很多问题。 我已经阅读了很多信息,但是当事情没有按预期进行时,它会让您感到疯狂。

长话短说,我在代理服务器(nginx)后面有一个Web服务器。 代理使用HTTPS处理请求(并将HTTP重定向到HTTPS),代理也具有LDAP授权(无关紧要,但是无论如何)。

在Web服务器计算机上,配置了apache代理,该代理从443(https)重定向到80端口。 Web服务器是Tomcat,在server.xml中将其配置为使用安全cookie(连接器设置)。

总结一下

[browser] ----->  [nginx proxy] -----> [tomcat app server]

现在的问题:

  1. 从Intranet打开应用程序时(请求不使用nginx代理直接发送到应用程序服务器),则根本不会缓存cookie。 开发人员工具显示,该响应包含 JSESSIONID cookie,但是新请求未使用它,并且应用程序中断。

    关键时刻:服务器返回安全 cookie

  2. 从互联网打开应用程序(请求通过nginx代理)时,将缓存cookie。 应用程序工作正常。 但是cookie虽然可能是 安全的 ,但它并不安全 (因为配置了tomcat并且我们通过HTTPS运行)。

因此,我想了解为什么在第一种情况下不缓存cookie,以及为什么在第二种情况下cookie不安全。

更新

我删除了

<session-config>
    <cookie-config>
        <secure>true</secure>
    </cookie-config>
</session-config>

来自web.xml(旨在确保所有Cookie的安全,我在网络中的某个位置找到了它)

之后,问题1已解决(Cookie现在已缓存),问题2也已解决(Cookie是安全的)。 老实说,我不了解这种魔术,想听听一些专家的解释。

您可以使用以下命令删除Cookie的斜杠

sessionCookiePathUsesTrailingSlash="false"

对于上下文

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM