我的代码在 tomcat 8 版本 8.0.33 上运行,但在 8.5.4 上我得到:为此 cookie 指定了无效域 [.mydomain]。
我发现在 tomcat 8 最新版本中引入了 Rfc6265CookieProcessor。
它在官方文档上说这可以在 context.xml 中恢复为 LegacyCookieProcessor 但我不知道如何。
请让我知道该怎么做。
谢谢
原文由 Sachin Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的代码在 tomcat 8 版本 8.0.33 上运行,但在 8.5.4 上我得到:为此 cookie 指定了无效域 [.mydomain]。
我发现在 tomcat 8 最新版本中引入了 Rfc6265CookieProcessor。
它在官方文档上说这可以在 context.xml 中恢复为 LegacyCookieProcessor 但我不知道如何。
请让我知道该怎么做。
谢谢
原文由 Sachin Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
情况 1: 您正在使用 独立的 Tomcat 并 有权访问 tomcat 服务器中的更改文件
请按照@linzkl 的 回答
情况 2: 您正在使用 独立的 Tomcat ,但您 无权访问 tomcat 服务器中的更改文件
在应用程序 的 src/main/webapp/META-INF 文件夹下创建一个名为 context.xml 的新文件并粘贴下面给出的内容
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />
</Context>
当您在独立 Tomcat 中部署应用程序时, 您放置在 META-INF 文件夹下的 context.xml 文件将覆盖 tomcat/conf/context.xml 中给出的 context.xml 文件
注意:如果您遵循此解决方案,则必须为每个应用程序执行此操作,因为 META-INF/context.xml 是特定于应用程序的
案例 3: 您正在使用 嵌入式 Tomcat
为 WebServerFactoryCustomizer 创建一个新 bean
@Bean
WebServerFactoryCustomizer<TomcatServletWebServerFactory> cookieProcessorCustomizer() {
return new WebServerFactoryCustomizer<TomcatServletWebServerFactory>() {
@Override
void customize(TomcatServletWebServerFactory tomcatServletWebServerFactory) {
tomcatServletWebServerFactory.addContextCustomizers(new TomcatContextCustomizer() {
@Override
public void customize(Context context) {
context.setCookieProcessor(new LegacyCookieProcessor());
}
});
}
};
}
原文由 IamVickyAV 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
您可以在 context.xml 中尝试
参考: https ://tomcat.apache.org/tomcat-8.0-doc/config/cookie-processor.html