我的产品仅使用身份提供商初始化的 SSO,并且工作正常。 请求http://localhost:8080/saml/SSO被验证。对于正确的请求,会创建一个 session ,对于错误的请求,我会收到状态 401。
我对其他端点(应该受到保护的端点)的传入请求有问题,例如 http://localhost:8080/messages
当请求具有正确的、经过身份验证的 session ID 时,它可以正常工作。 但对于未经身份验证的请求,我将被重定向到我的身份提供商页面,其中包含 URL
https:///sso/SSO?SAMLRequest=
如何禁用该行为?我只想拒绝那些带有“身份验证失败”响应的请求,而不与身份提供者进行任何交互。
最佳答案
只需删除 SAMLEntryPoint
它负责 SP SSO 的初始化。然后,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/