如何更改 Spring SAML 目标端点?

Posted

技术标签:

【中文标题】如何更改 Spring SAML 目标端点?【英文标题】:How to change Spring SAML destination endpoint? 【发布时间】:2015-07-03 04:09:48 【问题描述】:

是否可以在 Spring SAML 中更改目标端点?默认值为 /saml/SSO

我需要将其更改为 /sso。 我已经编辑了

<bean id="samlFilter"         class="org.springframework.security.web.FilterChainProxy">
<security:filter-chain pattern="/sso" filters="samlWebSSOProcessingFilter"/>

但它不起作用。 URL*/sso* 被视为需要身份验证的 URL,而不是应该接收 SAML 断言的 URL。

我正在使用身份提供程序初始化的 SSO,因此该 URL 是接收 base64 编码的 XML 文档(HTTP 发布请求)的那个。

如果没有其他选择,我会从 /ssosaml/SSO 进行服务器端重定向,但最好有自定义的能力Spring Saml 配置中的 URL。

【问题讨论】:

【参考方案1】:

samlWebSSOProcessingFilter 的 filterProcessesUrl 属性是正确答案并且工作正常。

就我而言,filterProcessesUrl 必须设置为“/sso”。 它对我不起作用,因为我将它设置为完整的端点 URL (scheme://server:port/contextPath/sso) 而不是路径。

如文档中所述,其他一些属性必须设置为相同的值(samlFilter 过滤器和服务提供者元数据)。

最后,SAML 断言(来自身份提供者的 XML 文档)必须包含与服务提供者中配置的 URL 相同的 URL。

【讨论】:

如何或在哪里更改代码以使上述 chagnes ? 在您的 SAML bean 的 xml(或 java)配置中。

以上是关于如何更改 Spring SAML 目标端点?的主要内容,如果未能解决你的问题,请参考以下文章

SAML 异常 预期目标端点不匹配

Spring Security SAML 扩展和@PreAuthorize

spring saml:LOGOUT 是如何处理的?是不是必须在 IDP 元数据 xml 中有注销端点?

如何在 Spring Boot 中从 Azure SAML 2.0 应用程序获取角色或组

具有反向代理的 Spring SAML - 响应的 inresponsetofield 与发送的消息不对应

更改 Spring Security SAML2 登录的 URL