繁体   English   中英

如何使Apache HttpClient尊重Set-Cookie标头中的Path?

[英]How do I make Apache HttpClient respect the Path in a Set-Cookie header?

我的本地服务器运行在/server/public/server/saml下的端点,并且我正在使用HttpClient(v4.4.1)与之交互。 请求任何端点触发器(如果客户端尚未建立会话)的标头Set-Cookie: JSESSIONID=ABC123; Path=/server/ Set-Cookie: JSESSIONID=ABC123; Path=/server/ ,以便客户端应该有一个会话。

但是,如果我调试并查看BasicCookieStore的内容,则保存的cookie的路径为/server/public/server/saml ,导致保存了两个cookie,并根据端点发送了不同的会话cookie。

我使用的是标准CookieSpec ,并且看到与标准strict相同的行为。

任何想法正在发生或如何解决?

似乎此问题是由此错误引起的, 该错误导致不遵守Path标头。 取而代之的是,客户端将从响应中获取的URL中的最后一个正斜杠之后的所有内容剥离,并将其用作cookie的路径。 Scott Blum的相关评论:

即,大小写混合的cookie属性未得到正确处理。 例如,如果要解析的Set-Cookie标头包含“ Path = / foo”属性,则根本不会使用该路径。 这是因为attributeHandler查找将失败(将其键入“ path”)。

将httpclient升级到版本4.5可以解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM