环境:jdk1.8
tomcat8.5.82
操作系统:国产麒麟
后台报异常“Cookie值中存在无效字符[32]”
经查找是tomcat8.5之前版本和8.5之后版本cookie的写入和解析策略确实发生了一些变化。
从8.5开始就默认使用了org.apache.tomcat.util.http.Rfc6265CookieProcessor
而之前的版本中一直使用的是org.apache.tomcat.util.http.LegacyCookieProcessor,
解决方式:
LegacyCookieProcessor可以读取Rfc6265CookieProcessor写入的cookie。
Rfc6265CookieProcessor可以正常读取LegacyCookieProcessor写入的cookie。
那么我们可以tomcat中设置把CookieProcessor都设置为LegacyCookieProcessor。这样新老版本程序都可以正常运行
设置方法:
在tomcat的context.xml中增加以下配置
<Context>
< CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />
</Context>

本文介绍了在JDK1.8环境下,如何处理在国产麒麟操作系统上,Tomcat 8.5.82版本cookie解析错误的问题,通过将CookieProcessor设置为LegacyCookieProcessor来确保新旧版本程序兼容,提供了context.xml配置方法。



4735

被折叠的 条评论
为什么被折叠?



