gpt4 book ai didi

java - JBoss 5.1.0 (JSF/Seam) cookies 用重音字符炸毁

转载 作者:行者123 更新时间:2023-11-30 09:55:10 26 4
gpt4 key购买 nike

我在 JBoss 4.2.3 中看不到这种行为。如果我尝试在 HttpServletResponse 上调用 addCookie() 并且我的 cookie 值中包含重音字符(例如 ç),我会收到此异常:java.lang.IllegalArgumentException:cookie 值中的控制字符,请考虑对您的值进行 BASE64 编码

有谁知道 JBoss 5.1.0 中的哪些更改可能导致这些问题?

最佳答案

显然他们修复了一个错误,因此 cookie 名称现在最终符合 RFC2109 .

另见 javax.servlet.http.Cookie API specification :

The name must conform to RFC 2109. That means it can contain only ASCII alphanumeric characters and cannot contain commas, semicolons, or white space or begin with a $ character. The cookie's name cannot be changed after creation.

带有 cedille ç 的 c 不是 ASCII character .


更新:抱歉,问题涉及 cookie 。然后这与 this Tomcat bugfix 有关(JBoss 在后台使用 Tomcat)。这应该可以通过如下设置 cookie 版本来解决:

cookie.setVersion(1);

根据旧的 Netscape 规范,ç 不是 cookie 值的有效字符,但它符合更新的 RFC2109 规范。随着Cookie#setVersion()您可以在它们之间切换。

关于java - JBoss 5.1.0 (JSF/Seam) cookies 用重音字符炸毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com