Keycloak 用户会话持久化

Keycloak user session persistence

当我登录时,我在 tables USER_SESSION 的数据库中没有看到任何活动会话CLIENT_SESSION.

但同时,活动会话显示在 Keycloak 管理面板会话 选项卡中。

这个会话存储在哪里:在内存中? 而如果是存入内存,那么如何让它存入数据库table?

https://www.keycloak.org/docs/latest/server_installation/#cache

In Keycloak we have the concept of authentication sessions. There is a separate Infinispan cache called authenticationSessions.

太对了。数据库不用于会话,也不使用“内存中”。使用 Infinispan 缓存。

当然没有人会阻止您重写整个 Keycloak 缓存以将会话存储在数据库中。但这将是一项相当大的任务。我会说开发者选择 Infinispan 而不是 DB 是有原因的,所以我根本不会改变它。

不清楚为什么需要将会话存储在数据库中。如果是为了持久性,那么 Infinispan 会提供 persistent store 的配置 - 例如您可以使用 JDBC 驱动程序并将数据保存到关系数据库中。