我的产品仅使用身份提供者初始化的SSO,并且工作正常。
对http://localhost:8080/saml/SSO的请求已验证。对于正确的请求,将创建一个会话,对于错误的请求,我将获得状态401。
我对其他端点(应确保安全)的传入请求有问题
http://localhost:8080/messages
当请求具有正确的,经过身份验证的会话ID时,它可以正常工作。
但是对于未经身份验证的请求,我使用URL重定向到我的身份提供程序页面
https:/// sso / SSO?SAMLRequest =
如何禁用该行为?我只想拒绝带有“身份验证失败”响应的请求,而无需与身份提供者进行任何交互。
最佳答案
只需删除负责SP SSO初始化的SAMLEntryPoint
。然后,Spring Security将使用默认入口点,该入口点的行为应符合您的预期。您仍然可以将SAML消息发送到/ saml / SSO。
编辑:
详细步骤如下
创建实现org.springframework.security.web.AuthenticationEntryPoint的bean
最简单的实现是<bean name="http403ForbiddenEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint"/>
在<security:http entry-point-ref="http403ForbiddenEntryPoint">
中使用该bean
删除<bean id="samlEntryPoint" class="org.springframework.security.saml.SAMLEntryPoint">
关于java - 如何在Spring SAML中禁用服务提供商初始化的SSO?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29843563/