[英]jsessionid passed in url if cookie and jsessionid stored by browser
[英]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]
现在的问题:
从Intranet打开应用程序时(请求不使用nginx代理直接发送到应用程序服务器),则根本不会缓存cookie。 开发人员工具显示,该响应包含 JSESSIONID cookie,但是新请求未使用它,并且应用程序中断。
关键时刻:服务器返回安全 cookie
从互联网打开应用程序(请求通过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.