Google chrome 使用Chrome的Cookie的CXF问题
最近,我遇到了一个奇怪的问题,cookies被发送到我的后端服务器(使用CXF 3.1.2处理HTTP请求),它抛出了一个异常:Google chrome 使用Chrome的Cookie的CXF问题,google-chrome,cookies,cxf,siteminder,Google Chrome,Cookies,Cxf,Siteminder,最近,我遇到了一个奇怪的问题,cookies被发送到我的后端服务器(使用CXF 3.1.2处理HTTP请求),它抛出了一个异常: java.lang.IllegalArgumentException: Cookie is malformed : at org.apache.cxf.jaxrs.impl.CookieHeaderProvider.fromString(CookieHeaderProvider.java:66) ~[cxf-rt-frontend-jaxrs-3.1.
java.lang.IllegalArgumentException: Cookie is malformed :
at org.apache.cxf.jaxrs.impl.CookieHeaderProvider.fromString(CookieHeaderProvider.java:66) ~[cxf-rt-frontend-jaxrs-3.1.2.jar:3.1.2]
at org.apache.cxf.jaxrs.impl.CookieHeaderProvider.fromString(CookieHeaderProvider.java:26) ~[cxf-rt-frontend-jaxrs-3.1.2.jar:3.1.2]
at javax.ws.rs.core.Cookie.valueOf(Cookie.java:126) ~[javax.ws.rs-api-2.0.1.jar:2.0.1]
at org.apache.cxf.jaxrs.impl.HttpHeadersImpl.getCookies(HttpHeadersImpl.java:117) ~[cxf-rt-frontend-jaxrs-3.1.2.jar:3.1.2]
at org.apache.cxf.jaxrs.impl.AbstractRequestContextImpl.getCookies(AbstractRequestContextImpl.java:59) ~[cxf-rt-frontend-jaxrs-3.1.2.jar:3.1.2]
at com.acmecorp.acmeproject.whitelist.filter.AuthenticationInFilter.filter(AuthenticationInFilter.java:34) ~[AuthenticationInFilter.class:na]
at org.apache.cxf.jaxrs.utils.JAXRSUtils.runContainerRequestFilters(JAXRSUtils.java:1636) ~[cxf-rt-frontend-jaxrs-3.1.2.jar:3.1.2]
这在我使用Chrome或Opera时偶尔会发生,但在Firefox或IE中并没有重现。
在CXF日志中,我发现下一个HTTP头被发送到服务器:
标题:{Accept=[application/json,text/plain,/],
接受编码=[gzip,deflate,lzma],
接受语言=[en-US,en;q=0.8],Cookie=[BlueStripe.PVN=300d00000051;
APP_USER=“test_user1”;SMSESSION=(省略)]
问题以双分号形式出现在标题中,标题之间有空格。CXF将其视为没有名称和值的cookie,并抛出异常
此问题可能与Siteminder SMSESSION cookie有关,它大约每分钟过期一次
任何帮助都将不胜感激。应提供符合的有效
Cookie:
标题
Cookie: name=value *(; name=value)
一个或多个name=value
对,用分号和空格分隔代码>。您的cookie无效,因为第三个条目无效
在服务器端,CXF抛出一个IllegalArgumentException
,因为name/value为null。这不是CXF错误,因为cookie不符合规范
我还没有在中发现任何相关的bug,所以我怀疑这是一个客户端问题
下一步是确定空白包含Cookie <代码>的位置;<代码>
在调用之前调试客户端代码以查看当前cookie集
检查http请求头并检查Cookie:
value
如果您发布客户端代码和调试器结果,这将很有帮助您是否检查了答案?正如我所说,如果没有看到客户代码pedrofb,就不可能完全回答问题,我非常感谢您的帮助。我们将努力深入调查这个问题,并尽快作出回应。谢谢。我发现这个问题可能与我们用于实现SSO的Siteminder有关。它将SMSessionCookie添加到请求中,并每分钟更改一次。此异常仅在这个时间间隔内发生,此时Siteminder应更新SMSESSION cookie值(我使用旧cookie值提交HTTP请求,它截取请求并更改cookie,但保留空白值“”,这会导致CXF崩溃)