我正在尝试通过服务器到服务器的GET请求访问REST服务,该请求由OpenSSO/Spring Security保护,但无法访问。这就像我的Spring Rest模板客户端没有状态来保存它应该保存的cookie,因为我在身份验证工作流中被重定向。
当使用浏览器这样做时,初始请求被重定向到OpenSSO,我被质询证书(PKI),我提交证书,并获得带有身份验证cookie标头的响应。然后我被重定向回我的原始目的地,我在请求头中提供我的auth cookie,然后我就上路了。
这不会发生在我的服务器到服务器调用中。
我已经寻找了很长一段时间,似乎找不到任何跨重定向保持这种状态的解决方案!
发布于 2013-03-13 00:13:27
使用zagyi的评论中的链接可能会起作用,但我花了一些时间找到了以下解决方案,它不涉及覆盖任何东西:
要在REST控制器中处理身份验证cookie,您必须显式地告诉它接受cookie。在处理调用之前,添加以下代码行:
CookieHandler.setDefault(new cookieManager(null, CookiePolicy.ACCEPT_ALL));https://stackoverflow.com/questions/15346486
复制相似问题