我希望能够读取用户上一次登录事件(Keycloak)。因此,我已经阅读了密钥披风文档,并没有找到任何管理api,以实现这一点。到目前为止,我所做的是在独立的-ha-xml文件上添加一个SPI部分,并在keycloak接口上启用Login事件。我知道这些日志存储在一个名为audit.log的文件中,并以JSON格式存储。因此,我不确定这是否是一个好主意,尝试阅读这个文件,并查明什么时候,一个用户已经登录。有什么想法吗?
<audit-logging>
<file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir" format="JSON"/>
</audit-logging>
<spi name="eventsListener">
<default-provider>jboss-logging</default-provider>
<provider name="jboss-logging" enabled="true">
<properties>
<property name="success-level" value="info"/>
<property name="error-level" value="warn"/>
</properties>
</provider>
</spi>发布于 2020-08-11 08:35:12
我认为有更好的方法来做到这一点。首先您需要打开Events菜单,然后选择Config选项卡。在Save Events组中检查Login Events Settings选项。您也可以指定类型(LOGIN)和过期(存储的时间)。然后您可以使用admin GET /{realm}/events 文档 (需要授权)来读取它们。
https://{host}:{port}/auth/admin/realms/{realm}/events?type=LOGIN
或者您可以在Keycloak数据库中查询它们,但我认为第一个选项更好:
SELECT id, client_id, details_json, error, ip_address, realm_id, session_id, event_time, type, user_id
FROM event_entity WHERE type = 'LOGIN';https://stackoverflow.com/questions/63345767
复制相似问题