如何在tomcat 8中将Cookie处理器更改为LegacyCookieProcessor
我的代码在tomcat 8版本8.0.33上工作,但在8.5.4上我得到:为此cookie指定了无效的域[.mydomain]。
我发现Rfc6265CookieProcessor是在tomcat 8最新版本中引入的。
它在官方文档上说,这可以在上下文中恢复到LegacyCookieProcessor.xml但我不知道如何。
请让我知道该怎么做。
谢谢
我的代码在tomcat 8版本8.0.33上工作,但在8.5.4上我得到:为此cookie指定了无效的域[.mydomain]。
我发现Rfc6265CookieProcessor是在tomcat 8最新版本中引入的。
它在官方文档上说,这可以在上下文中恢复到LegacyCookieProcessor.xml但我不知道如何。
请让我知道该怎么做。
谢谢
您可以在上下文中尝试.xml
<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />
参考资料: https://tomcat.apache.org/tomcat-8.0-doc/config/cookie-processor.html
案例1:您正在使用独立 Tomcat,并有权访问 tomcat 服务器中的更改文件
案例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 文件夹下的上下文.xml文件将覆盖 tomcat/conf/context 中给出的上下文.xml文件.xml
注意:如果您遵循此解决方案,则必须为每个应用程序执行此操作,因为 META-INF/context.xml 是特定于应用程序的
案例3:您正在使用嵌入式雄猫
为 WebServerFactory 创建自定义工具的新 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());
}
});
}
};
}