为了响应任何包含非ASCII字符的cookie的请求,ColdFusion 11似乎崩溃了.IIS 8.5返回HTTP 500内部服务器错误(空白页).
重现步骤:
在Javascript控制台中运行以下命令并尝试加载任何CFML页面:
document.cookie="a=ñ";
(可选)请求任何.html或.txt文件并接收正常响应.
请求任何ColdFusion页面并收到空白页,HTTP 500内部服务器错误.
唯一的解决方法是清除浏览器cookie.
环境:
我已经尝试添加-Dfile.encoding=UTF-8Java参数.
我没有在ColdFusion上找到其他人遇到这个问题.在Tomcat上运行Java代码存在类似的问题.但是,由于ColdFusion 11与Tomcat捆绑在一起,我甚至不知道Tomcat的运行版本以及如何升级它.(看起来ColdFusion 10运行Tomcat 7)Adobe似乎没有关于ColdFusion 11的Tomcat层的文档(特别是它与ColdFusion的关系).我已尝试将<CookieProcessor />配置应用于context.xml,如其他帖子所示.我已发布到Adobe bug基础并且未收到任何响应.
欢迎任何想法.不幸的是,我们在cookie中有很多用户使用"Español",我们无法执行任何ColdFusion代码来清除或更改它.我们在ColdFusion 9中没有遇到这个问题,并且在升级到ColdFusion 11之后在QA检查中错过了这个问题.
coldfusion-error.log完全例外:
Sep 03, 2015 11:43:58 PM org.apache.coyote.ajp.AjpProcessor process
SEVERE: Error processing request
java.lang.IllegalArgumentException: Control character in cookie value or attribute.
at org.apache.tomcat.util.http.CookieSupport.isHttpSeparator(CookieSupport.java:193)
at org.apache.tomcat.util.http.Cookies.getTokenEndPosition(Cookies.java:502)
at org.apache.tomcat.util.http.Cookies.processCookieHeader(Cookies.java:349)
at org.apache.tomcat.util.http.Cookies.processCookies(Cookies.java:168)
at org.apache.tomcat.util.http.Cookies.getCookieCount(Cookies.java:106)
at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:986)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:743)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:417)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at …Run Code Online (Sandbox Code Playgroud)