【问题标题】:Apache HttpClient cooke rejectedApache HttpClient 库克被拒绝
【发布时间】:2016-05-08 11:24:20
【问题描述】:

我们正在开发一个分布式系统,其中包含六个不同的已部署工件,其中每个工件都有自己的 REST API。这些系统通过 Java 客户端通过安全的 SSL 连接相互通信(在 Apache shiro 的帮助下使用 X509 客户端身份验证)。

现在,在每次客户端调用 REST 资源时,我们都会收到以下警告(我用星号涂黑了部分警告):

WARN  org.apache.http.client.protocol.ResponseProcessCookies.processCookies(ResponseProcessCookies.java:127): Cookie rejected: "[version: 0][name: rememberMe][value: deleteMe][domain: local.****.net][path: /abc][expiry: Fri Jan 29 11:25:07 UTC 2016]". Illegal path attribute "/abc". Path of origin: "/***/backend/abc/v1/some/other/parts/of/resource"

现在的问题是我们没有在客户端中设置任何 cookie,我无法弄清楚 cookie 的设置位置和方式(或者我是否可以忽略警告)。我认为它与 Apache Shiro 配置相关。 shiro.ini 的相关 cookie 路径如下所示:

cookie = org.apache.shiro.web.servlet.SimpleCookie
cookie.name = ***cookie
cookie.path = /

我希望你能帮助我消除警告。如果您需要更多代码示例,请告诉我。

【问题讨论】:

  • 这个cookie在服务器生成的响应中。显然服务器认为请求路径是/abc/...,不知道真实路径(客户端知道)添加了前缀。
  • 好的,但我们没有设置任何cookie,我认为Shiro设置了这个cookie,我不知道如何更正或强制Shiro设置正确的路径。

标签: java authentication cookies apache-httpclient-4.x shiro


【解决方案1】:

如果您尝试使用您定义的配置覆盖现有的 cookie 配置,这应该可以:

securityManager.sessionManager.sessionIdCookie = $cookie

或者,如果您愿意,可以完全关闭 cookie:

securityManager.sessionManager.sessionIdCookieEnabled = false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2012-12-11
    • 1970-01-01
    相关资源
    最近更新 更多