【发布时间】:2017-12-25 16:31:00
【问题描述】:
我们正在开发一个应用程序,该应用程序受 spring security saml 保护。
身份验证工作正常,但生产环境中的以下工作流程存在一个问题。
- 用户请求未受保护的地址 www.server.com
- response 是一个带有内联脚本的 html 页面,该脚本将 window.location.href 更改为受 saml 保护的页面(服务提供商)www.server.com/app/action?param1=value1¶m2=value2
- spring saml 检测到需要身份验证并将用户重定向到 www.login-server.com 上的登录表单(身份提供程序)
- 此时登录表单是显示给用户的第一页
- 用户将此登录页面添加为书签(包括此 http 会话的 saml 相关 url 参数)www.login-server.com/adfs/ls/?SAMLRequest=xxx&SigAlg=xxx&Signature=arGdsZwJtHzTDjQP1oYqbjNO
- 用户使用应用程序...
- 第二天用户打开此书签并登录
- IdP 重定向到 SP,但所属的 http 会话已过期
现在我们的应用程序中出现以下异常:
org.opensaml.common.SAMLException:响应的 InResponseToField 与发送的消息不对应 arGdsZwJtHzTDjQP1oYqbjNO
任何想法如何处理此工作流程以便用户在成功登录后可以使用该应用程序? 感谢您的回答!
【问题讨论】:
标签: spring security spring-security saml spring-saml