Java 如何在Spring SAML中禁用服务提供程序初始化的SSO?

Java 如何在Spring SAML中禁用服务提供程序初始化的SSO?,java,spring,saml,spring-saml,Java,Spring,Saml,Spring Saml,我的产品只使用身份提供程序初始化的SSO,而且工作正常。 对请求进行验证。对于正确的请求,将创建一个会话,对于错误的请求,我将获得状态401 我对传入到其他端点的请求(应该安全的端点)有问题,比如 当请求具有正确的、经过身份验证的会话id时,它工作正常。 但对于未经身份验证的请求,我会被重定向到带有URL的身份提供程序页面 https:///sso/SSO?SAMLRequest= 如何禁用该行为?我只想用“身份验证失败”响应拒绝这些请求,而不与身份提供程序进行任何交互。只需删除负责SP SS

我的产品只使用身份提供程序初始化的SSO,而且工作正常。 对请求进行验证。对于正确的请求,将创建一个会话,对于错误的请求,我将获得状态401

我对传入到其他端点的请求(应该安全的端点)有问题,比如

当请求具有正确的、经过身份验证的会话id时,它工作正常。 但对于未经身份验证的请求,我会被重定向到带有URL的身份提供程序页面

https:///sso/SSO?SAMLRequest=


如何禁用该行为?我只想用“身份验证失败”响应拒绝这些请求,而不与身份提供程序进行任何交互。

只需删除负责SP SSO初始化的
SamlentPoint
。然后,SpringSecurity将使用默认入口点,该入口点的行为应符合您的预期。您仍然可以将SAML消息发送到/SAML/SSO

编辑: 具体步骤如下

  • 创建bean实现org.springframework.security.web.AuthenticationEntryPoint 最简单的实现是

  • 删除


  • 谢谢,它工作完美!我编辑了你的答案并添加了详细的步骤。