如何更改 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 发布请求)的那个。
如果没有其他选择,我会从 /sso 到 saml/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 目标端点?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security SAML 扩展和@PreAuthorize
spring saml:LOGOUT 是如何处理的?是不是必须在 IDP 元数据 xml 中有注销端点?
如何在 Spring Boot 中从 Azure SAML 2.0 应用程序获取角色或组