用于单点登录服务的查询字符串参数的Spring SAML扩展条

时间:2015-01-08 18:52:40

标签: spring-security spring-saml

Spring SAML Extension似乎忽略了在IDP xml中配置的查询字符串参数。这是配置

   <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://<provier host>/saml/?query1=xxx&amp;query2=yyy"/>

1)当SSO请求被重定向时,SAML扩展似乎在之后剥离了什么?并仅发送SAMLRequest查询字符串参数。

2)我还想根据一些配置修改查询字符串参数值,以便我可以点击特定于环境的端点进行测试和开发

有没有办法在重定向之前拦截重定向请求以满足上述需求?

2 个答案:

答案 0 :(得分:5)

查询参数由类org.opensaml.saml2.binding.encoding.HTTPRedirectDeflateEncoder中的底层OpenSAML库删除。您可以扩展此类,重写方法buildRedirectURL并根据需要向构造的URL添加参数。然后,您的实现需要使用其接受org.springframework.security.saml.processor.HTTPRedirectDeflateBindingMessageDecoder实例的构造函数添加到bean MessageEncoder

答案 1 :(得分:0)

使用新的Google Apps SAML IDP联合SSO解决此问题。 弗拉迪米尔上面的建议帮助我解决了这个问题。 这是我让其他人找到解决方案的确切错误。

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.