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 驱动程序并将数据保存到关系数据库中。
当我登录时,我在 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 驱动程序并将数据保存到关系数据库中。