【发布时间】:2022-01-06 16:59:41
【问题描述】:
我正在为 Keycloak 开发自定义事件侦听器 SPI。事件监听器工作;但是,我在获取 UPDATE_PROFILE 事件类型的详细信息时遇到问题。当使用 event.getDetails() 应该返回事件详细信息的 Map 时,它会返回 null。
我正在尝试获取用户更新了哪些字段的详细信息、它们的旧值以及用于审计目的的新值。
我目前尝试记录事件详细信息的代码如下:
logger.info("Got an event of type: {}", event.getType());
logger.info("Event details:");
if (event.getDetails() != null) {
for (String key : event.getDetails().keySet()) {
logger.info("Key: {}, Value: {}", key, event.getDetails().get(key));
}
}
...
switch (event.getType()) {
case UPDATE_PROFILE:
logger.info("User updated his/her profile");
logger.info("UPDATE_PROFILE event details: {}", event.getDetails());
break;
编辑: 它仅记录对基本 Keycloak 主题(电子邮件、名字和姓氏)中存在的字段的更改。我们添加到自定义主题中的任何自定义字段的任何更改都是在事件详细信息为空且不记录任何内容时发生的。
非常感谢任何帮助。
【问题讨论】:
标签: java keycloak event-listener