java - 如何在 Spring SAML 中禁用服务提供者初始化的 SSO?

标签 java spring saml spring-saml

我的产品仅使用身份提供商初始化的 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。

编辑: 详细步骤如下

  1. 创建实现 org.springframework.security.web.AuthenticationEntryPoint 的 bean 最简单的实现是<bean name="http403ForbiddenEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint"/>

  2. <security:http entry-point-ref="http403ForbiddenEntryPoint">中使用该bean

  3. 删除<bean id="samlEntryPoint" class="org.springframework.security.saml.SAMLEntryPoint">

关于java - 如何在 Spring SAML 中禁用服务提供者初始化的 SSO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843563/

相关文章:

java - 跨 jvms 的对象的对象 ID?

java - JUnit 测试 : How to check for errors with a try-catch block

Java、Dropbox : Get access token without copy pasting by user.

php - 单点登录 (sso) laravel

php - SimpleSAMLphp IDP、SP、MediaWiki

java - 在警报对话框中访问 LinearLayout 中的 EditText

java - 在 Intent 中传递 ArrayList<int[]>[] 的正确方法是什么?

java - 任务 ':compileJava'的执行失败。 Gradle

java - 未获取通过 RestTemplate.getForObject 传递的 header

jboss - 将 JBoss GateIn 门户与 PicketLink-STS (SAML) 集成