spring-boot - keycloak openid single log out with spring boot

标签 spring-boot spring-security logout openid-connect keycloak

我正在尝试使用 keycloak 和 openid 在我的 spring boot 应用程序中实现单一注销。

我已经使用 sprint boot 1.5.3 和 spring 安全适配器(文档 here)设置了 keycloak 3.4.3,使用 tomcat 适配器(文档 here)算法。一切正常,直到我尝试从我的所有 session 中注销。

我试过:

1) 在 keycloak 管理控制台 ui 上:注销所有 session 结果:它确实清除了 keycloak 中的所有 session ,但没有清除我的客户端应用程序中的浏览器 session 。所以我一直登录,直到我手动删除它们。

2) 使用HttpServletRequest.logout()http://auth-server/auth/realms/{realm-name}/protocol/openid-connect/logout?redirect_uri= encodedRedirectUri (文档 here ),仅从当前客户端注销而不作为 SLO

我不确定 OpenID 是否支持 SLO,而且我找不到任何关于它的可靠文档。

¿有没有办法使用 OpenID 和 Spring boot 实现单点注销?

最佳答案

您可以执行以下操作来注销

   @GetMapping(path = "/logout")
   public String logout(HttpServletRequest request) throws ServletException {
      request.logout();
      return "/";
   }

http

<a href="/logout">Logout</a>

关于spring-boot - keycloak openid single log out with spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50537584/

相关文章:

java.lang.IllegalStateException : No instances available for student-service at org. springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient

spring - ConditionalOnClass,为什么JVM允许运行时类不在类路径中

spring - 如何存储 session ID并将其与用户相关联

微软安全公告 ADV190023 的 Spring Ldap 影响(LDAP channel 绑定(bind)和 LDAP 签名)

php - facebook 从网站登录和注销?

spring - Spring Boot 应用程序中每个端点 uri 的 HTTP 指标

java - Spring框架启动不存在?

spring-security - 在端到端测试中使用 `WebTestClient.mutateWith() `时出现NPE

swift - 在表格 View 中使用静态单元格时如何执行注销操作?

php - Yii2 从用户当前 session 远程注销用户 session