【发布时间】:2018-08-29 21:00:54
【问题描述】:
我们使用的是 tomcat 版本:8.0.33 并尝试迁移到 8.5.13
我们在应用程序中使用了 cookie。但是在上述版本中部署应用程序后,在读取cookie时遇到了之前的错误,
2017-04-11 16:13:04 ERROR 错误:176 - 类中发生异常 com.TestController 的异常细节是: java.lang.IllegalArgumentException:无效字符 [34] 是 存在于 Cookie 值中 org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateCookieValue(Rfc6265CookieProcessor.java:182) 在 org.apache.tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.java:115)
后来找到了问题的解决办法:
// Previous code:
final Cookie cookies = new Cookie(key, value);
//Fix code:
final Cookie cookies = new Cookie(key, URLEncoder.encode(value, "UTF-8"));
我们必须对 cookie 中的值进行编码。
【问题讨论】:
-
尝试添加有关您的问题的更多信息
-
首先:触发此问题的代码
-
用修复更新了问题。对 cookie 值进行编码解决了问题
标签: tomcat8