【发布时间】: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