Spring 用于单点登录服务的查询字符串参数的 SAML 扩展条
Spring SAML Extension strips of query string param for Single Sign on Service
Spring SAML 扩展似乎忽略了 IDP xml 中配置的查询字符串参数。这里是配置
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://<provier host>/saml/?query1=xxx&query2=yyy"/>
1) 当 SSO 请求被重定向时,SAML 扩展似乎在 ?并仅发送 SAMLRequest 查询字符串参数。
2) 我还想根据一些配置修改查询字符串参数值,以便我可以访问特定于环境的端点以进行测试和开发
有没有办法在重定向前拦截重定向请求来满足上述需求?
classorg.opensaml.saml2.binding.encoding.HTTPRedirectDeflateEncoder
中的底层 OpenSAML 库删除了查询参数。您可以扩展此 class、覆盖方法 buildRedirectURL
并根据需要向构造的 URL 添加参数。然后需要使用接受 MessageDecoder
和 MessageEncoder
.
实例的构造函数将您的实现添加到 bean org.springframework.security.saml.processor.HTTPRedirectDeflateBinding
使用新的 Google Apps SAML IDP Federated SSO 解决这个问题。
Vladimír 的上述建议帮助我解决了问题。
这是我让其他人找到解决方案的确切错误。
400. That’s an error.
Invalid Request, no idpId in request URL, check if SSO URL is configured properly on SP side. That’s all we know.
Spring SAML 扩展似乎忽略了 IDP xml 中配置的查询字符串参数。这里是配置
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://<provier host>/saml/?query1=xxx&query2=yyy"/>
1) 当 SSO 请求被重定向时,SAML 扩展似乎在 ?并仅发送 SAMLRequest 查询字符串参数。
2) 我还想根据一些配置修改查询字符串参数值,以便我可以访问特定于环境的端点以进行测试和开发
有没有办法在重定向前拦截重定向请求来满足上述需求?
classorg.opensaml.saml2.binding.encoding.HTTPRedirectDeflateEncoder
中的底层 OpenSAML 库删除了查询参数。您可以扩展此 class、覆盖方法 buildRedirectURL
并根据需要向构造的 URL 添加参数。然后需要使用接受 MessageDecoder
和 MessageEncoder
.
org.springframework.security.saml.processor.HTTPRedirectDeflateBinding
使用新的 Google Apps SAML IDP Federated SSO 解决这个问题。 Vladimír 的上述建议帮助我解决了问题。 这是我让其他人找到解决方案的确切错误。
400. That’s an error.
Invalid Request, no idpId in request URL, check if SSO URL is configured properly on SP side. That’s all we know.