相关疑难解决方法(0)

Keycloak 注销不会结束会话

我在使用 Spring Framework 和 Jetty 8.1 的 Java 应用程序中使用 Keycloak 3.4 和 Keycloak Jetty-81-Adapter 3.4。

根据 Keycloak 文档,我应该能够在 Java EE 应用程序中使用 HttpServletRequest 从 Keycloak 注销。但是,这在我的情况下不起作用,即使 Jetty 支持 HttpServletRequests。

您可以通过多种方式注销 Web 应用程序。对于 Java EE servlet 容器,您可以调用 HttpServletRequest.logout()..

如果我尝试以这种方式注销,我会被重定向到 keycloak(登录屏幕,可选择从多个领域登录中进行选择)。然而,当我选择我的首选领域时,我会立即再次登录到 Web 应用程序,而无需提供任何凭据。

我尝试了另一种方法,通过重定向到 Keycloak:

对于其他浏览器应用,可以将浏览器重定向到
http://auth-server/auth/realms/ {realm-name}/protocol/openid-connect/logout?redirect_uri=encodedRedirectUri

但它会在 Keycloak 日志中引发连接拒绝错误,因为 Keycloak 尝试以直接方式调用我的 web 应用程序。它对保持活动状态的 Keycloak 会话没有影响。我强烈希望不需要从 Keycloak 直接到 webapp 的服务器端调用。

HttpServletRequest.logout()在我的情况下,为什么不破坏 keycloak 会话的任何建议?HttpServletRequest 的 Jetty 实现是否与 Java EE 实现如此不同以至于它根本无法工作?

java logout embedded-jetty keycloak

2
推荐指数
2
解决办法
2万
查看次数

标签 统计

embedded-jetty ×1

java ×1

keycloak ×1

logout ×1