Spring security spring安全sasl:无法配置SSO url

Spring security spring安全sasl:无法配置SSO url,spring-security,spring-saml,Spring Security,Spring Saml,我正在使用github提供的以下spring security saml repo: 每当我尝试更新SSO url时,例如localhost:8100/saml/ddo,而不是/saml/SSO,浏览器就会陷入无限循环。 (我已经按照自述文件中提到的步骤更新了okta上的url以及要测试的应用程序中的url) 示例代码和配置包含在: 编辑: 我按照下面的回答做了,但我得到的传入SAML消息无效。 在调试时,我发现attemptAuthentication在SAMLProcessingFilt

我正在使用github提供的以下spring security saml repo:

每当我尝试更新SSO url时,例如localhost:8100/saml/ddo,而不是/saml/SSO,浏览器就会陷入无限循环。 (我已经按照自述文件中提到的步骤更新了okta上的url以及要测试的应用程序中的url)

示例代码和配置包含在:

编辑:

我按照下面的回答做了,但我得到的传入SAML消息无效。

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

这就是为什么
SamlUtil
中的
getEndpoint
方法使用以下行抛出expetion:

抛出新的SAMLException(“在本地元数据中找不到具有消息绑定“+messageBinding+”和URL“+requestURL+”的端点”)

因为requestUrl和端点位置不匹配

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

MetaDataGenerator
类方法
getSAMLWebSSOProcessingFilterPath
中,
samlWebSSOFilter
为空,这就是返回默认筛选器url:
/saml/SSO
的原因。我试图弄清楚如何在运行时设置此值? 我知道有一个方法名为:
setSamlWebSSOFilter
,如果我在启动时提供url
/saml/ddo
,则一切正常。但是,如果在运行时更改配置,我就无法实现这一点


有什么想法吗?

在bean
samlWebSSOProcessingFilter
上设置字段
filterProcessesUrl
到value
/saml/ddo
应该可以解决这个问题。

因为上面的注释很长,我已将其作为原始问题的一部分添加。在MetadataGenerator为您的服务创建元数据之前,需要设置属性。您可以使用预先配置的元数据来修复端点()。当然,只要元数据发生更改,就需要更新IDP。