我正在实现(使用 Apache Wicket 8.0.0-M6、JDK 1.8.0_20)一个 Web 应用程序,其中包含一些在 Apache Tomcat 7.0.23 上运行的 cookie,无论我做什么,我的所有 cookie 都在其路径周围用双引号引起来(没有路径即默认,/,/myapp/mysubdomain)。这会阻止我在我的各种网络应用程序之间传递 cookie。
最终,我安装了 Apache Tomcat 9 (9.0.0.M26) 和 JDK 1.8.0_141,这种行为消失了,并且 cookie 被正确写入,没有双引号。
这很棒,没有任何配置更改,但我不知道升级中的原因是什么,因为如果可能的话,我宁愿暂时坚持使用 Tomcat 7。是从 servlet 2 到 4 的变化吗?有人知道吗?
最佳答案
你有没有引用tomcat的迁移指南?这是 tomcat 的 cookie 迁移指南。
Tomcat's migration guide on Cookies
它说,
The default CookieProcessor is now the Rfc6265CookieProcessor. The CookieProcessor is configurable per Context and the LegacyCookieProcessor may be used to obtain the 8.0.x behaviour.
尝试通过在您的元素中添加以下行来更改为 LegacyCookieProcessor。
<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor"/>
关于apache - Cookie 路径总是使用 Apache Tomcat 7 而不是 Tomcat 9 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47699730/