Spring SAML一次性使用条件

Spring SAML one time use condition

我正在尝试使用 spring 安全 saml 连接到自定义 cas 4 实现。 Spring lib 抛出异常,因为断言条件是一次性使用。我将其注释掉扩展基础 class 并且我让它工作了。我想知道为什么图书馆有这样的限制。 谢谢你的帮助。 在 class class WebSSOProfileConsumerImpl 的方法 verifyAssertionConditions 中更具体,有以下代码:

else if (conditionQName.equals(OneTimeUse.DEFAULT_ELEMENT_NAME)) {
  throw new SAMLException("System cannot honor OneTimeUse condition of the Assertion for WebSSO");
} 

Spring SAML 在其整个有效期内使用收到的 Assertion 并且不能强制请求一个可能具有不同值(例如访问角色)的新的 - 这是我对意图的理解OneTimeUse 此上下文中的条件(详细信息在 SAML 2 core 中)。因此 Spring SAML 拒绝设置了此条件的 SAML 响应。

您可以通过覆盖 WebSSOProfileConsumerImpl 中的 verifyAssertionConditions 来更改行为,过滤掉条件并用剩余的条件调用 super。