spring security sasl:无法配置SSO URL

时间:2018-01-17 03:27:49

标签: spring-security spring-saml

我正在使用来自github的以下spring security saml repo: https://github.com/spring-projects/spring-security-saml/tree/master/sample

每当我尝试更新SSO网址时,例如localhost:8100 / saml / ddo,而不是/ saml / sso,浏览器陷入无限循环。 (我已经按照自述文件中提到的步骤进行了操作,并在应用程序中更新了okta上的url)

示例代码和配置包含在: Spring secuirty saml issue

修改

我做了以下回答建议的内容,但我收到收到的SAML邮件无效。

在调试时,我发现attemptAuthentication中的SAMLProcessingFilter,端点中添加的位置仍然包含/api/saml/SSO而不是/api/saml/ddo

enter image description here

enter image description here

这就是为什么getEndpoint中的SamlUtil方法会引发以下行的激活:

throw new SAMLException("Endpoint with message binding " + messageBinding + " and URL " + requestURL + " wasn't found in local metadata");

因为requestUrl和端点位置不匹配。

我还检查了我的metadata.xml,但它不包含与这些网址相关的任何信息。

MetaDataGenerator类方法getSAMLWebSSOProcessingFilterPath中,samlWebSSOFilter为空,这就是返回默认过滤网址:/saml/SSO的原因。我想弄清楚如何在运行时设置此值? 我知道有一个名称为setSamlWebSSOFilter的方法,如果我在启动时提供了网址/saml/ddo,那么一切正常。但如果在运行时更改了配置,我无法完成这项工作。

我知道如何才能继续前进?

1 个答案:

答案 0 :(得分:1)

将bean filterProcessesUrl上的字段samlWebSSOProcessingFilter设置为值/saml/ddo可以解决问题。