【问题标题】:How do I make Apache HttpClient respect the Path in a Set-Cookie header?如何让 Apache HttpClient 尊重 Set-Cookie 标头中的路径?
【发布时间】:2015-09-21 13:06:02
【问题描述】:

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

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

我正在使用标准 CookieSpec,并且看到与标准严格相同的行为。

任何想法发生了什么或我该如何解决?

【问题讨论】:

    标签: java apache-httpcomponents


    【解决方案1】:

    问题似乎是由this bug 引起的,导致Path 标头不受尊重。相反,客户端将删除从 URL 中检索响应的最后一个正斜杠之后的所有内容,并将其用作 cookie 的路径。 Scott Blum 的相关评论:

    也就是说,混合大小写的 cookie 属性没有得到正确处理。例如,如果正在解析的 Set-Cookie 标头包含“Path=/foo”属性,则根本不会尊重该路径。这是因为attributeHandler 查找会失败(它被键入“路径”)。

    将 httpclient 升级到 4.5 版解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 2020-08-16
      相关资源
      最近更新 更多