我正在使用来自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
这就是为什么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
,那么一切正常。但如果在运行时更改了配置,我无法完成这项工作。
我知道如何才能继续前进?
答案 0 :(得分:1)
将bean filterProcessesUrl
上的字段samlWebSSOProcessingFilter
设置为值/saml/ddo
可以解决问题。