在 context.xml 个问题中设置同一个站点

Setting samesite in context.xml questions

我们遇到了 Chrome 问题,Edge 在 iframe 中 运行 时无法正确呈现我们的 Java/JSP 网站。 Firefox 和 IE 正常工作。

我们的研究表明,这是因为 JSESSIONID cookie 需要将 SameSite 属性设置为 NONE。

通过对 context.xml 进行以下更改,我们能够在本地主机环境中将 JSESSIONID cookie 上的 SameSite 属性设置为 NONE:

<?xml version='1.0' encoding='utf-8'?>
<Context>
        <CookieProcessor sameSiteCookies="none"/>
</Context>

但是,当我们尝试在我们的测试环境中进行测试时,它仍然不起作用。我们的 JSESSIONID cookie 上的 SameSite 属性未设置为 NONE.

在我们的测试环境中,我们有以下 context.xml 个文件:

/opt/apache-tomcat/apache-tomcat-7.0.30/conf/context.xml
/opt/apache-tomcat/apache-tomcat-7.0.30/instances/appA/conf/context.xml
/opt/apache-tomcat/apache-tomcat-8.5.31/conf/context.xml
/opt/apache-tomcat/apache-tomcat-8.5.31/instances/AppB/conf/context.xml
/opt/apache-tomcat/apache-tomcat-9.0.21/conf/context.xml
/opt/apache-tomcat/apache-tomcat-9.0.21/instances/AppC/conf/context.xml
/opt/apache-tomcat/apache-tomcat-9.0.21/instances/OurApplication/conf/context.xml <== Has samesitecookie="none"
/opt/apache-tomcat/apache-tomcat-9.0.21/instances/OurApplication/webapps/OurApplication/META-INF/context.xml <== Has samesitecookie="none"

我们在上述 2 个 context.xml 文件中有 sameSiteCookies="none"。我想知道它是否正在从另一个读取 CookieProcessor。有没有办法查看您在 Java 中使用的 context.xml 实例?

same-site cookie 属性设置为 Noneintroduced in Tomcat 9.0.28, but you are using 9.0.21 which does not support None. It was back-ported in Tomcat 8.5.48,但您使用的是 8.5.31,它也不支持它。

因此您必须更新您的 tomcat 版本。