【问题标题】:Keycloak custom Event Listener SPI: UPDATE_PROFILE event details returns null for changes to custom attributesKeycloak 自定义事件侦听器 SPI:UPDATE_PROFILE 事件详细信息返回 null 以更改自定义属性
【发布时间】: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


    【解决方案1】:

    我将此作为对我的问题的回答,供其他可能遇到此问题的人使用。

    我遇到的问题被记录为增强here。遇到此问题时,我正在运行 Keycloak v15.0.2。此问题已在最新版本的 Keycloak v16.1.0 中得到修复。

    【讨论】:

    • 感谢分享您的问题的解决方案。就是这样! :-)
    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 2021-03-24
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多