小编laz*_*ron的帖子

使用 Spring Security Adapter 时的 Keycloak 会话超时行为

当 Keycloak 和 Spring Security 与 OIDC 客户端协议一起使用时,当 Keycloak SSO 会话超时已经发生时,应用程序会话不会过期。因此,如果用户在访问令牌过期后访问受 Keycloak 适配器保护的应用程序的任何部分,Spring Security 仍然具有身份验证对象。但是,当 Keycloak 适配器检查访问令牌是否处于活动状态时,此时它不会处于活动状态,因此适配器(RefreshableKeycloakSecurityContext.java 类)尝试使用它拥有的刷新令牌获取新的访问令牌。由于刷新令牌已在 Keycloak 中失效,因此适配器抛出

Refresh token failure status: 400 {"error":"invalid_grant","error_description":"Refresh token expired"}

因此,用户仍然可以导航和访问应用程序的任何部分,而无需进入登录页面重新进行身份验证。

任何提示/想法如何实现所需的行为,以便当 Keycloak SSO 会话过期时,用户将被重定向到登录页面并且 Spring 身份验证将失效?

Spring-Security: 4.0.4.RELEASE
Keycloak Spring Security Adapter: 3.4.2.Final
Keycloak Server: 3.4.3.Final
Run Code Online (Sandbox Code Playgroud)

java spring spring-security openid-connect keycloak

6
推荐指数
1
解决办法
3375
查看次数

标签 统计

java ×1

keycloak ×1

openid-connect ×1

spring ×1

spring-security ×1