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

Spring security 用于单点登录服务的查询字符串param的Spring SAML扩展条,spring-security,spring-saml,Spring Security,Spring Saml,Spring SAML扩展似乎忽略了IDP xml中配置的查询字符串param。这里是配置 <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扩展似乎会删除任何内容?并

Spring SAML扩展似乎忽略了IDP xml中配置的查询字符串param。这里是配置

   <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查询字符串param

2) 此外,我还希望根据一些配置修改查询字符串param值,以便能够访问特定于环境的端点进行测试和开发


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

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

的实例,并使用新的Google应用程序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.

谢谢我对它进行了调试,发现在我发布问题后,OpenSAML库删除了查询字符串。我还尝试通过samlmessagecontext.getPeerEntityRoleMetadata().getEndpoints()和singlesignon服务更新url,但没有成功。我将尝试您在这里建议的解决方案。这对于我尝试用一个具有高预条件的新HttpRedirectDeflateBinding bean覆盖HTTPRedirectDeflateEncoder是不起作用的。我发布了我的工作,以使覆盖bean似乎不会产生影响,并且在Idp元数据中添加查询参数继续被剥离