18.0.0 版 Keycloak 的自定义事件监听器

Custom Event Listener for Keycloak of version 18.0.0

我正在尝试为 Keycloak 创建一个事件侦听器: Project structure and META-INF.services.org.keycloak.events.EventListenerProviderFactory

CustomEventListenerProviderFactory:

public class CustomEventListenerProviderFactory implements EventListenerProviderFactory {

    private static final String LISTENER_ID = "event-listener-extension";

    @Override
    public EventListenerProvider create(KeycloakSession session) {
        return new CustomEventListenerProvider();
    }

    @Override
    public void init(Config.Scope scope) {

    }

    @Override
    public void postInit(KeycloakSessionFactory keycloakSessionFactory) {

    }

    @Override
    public void close() {

    }

    @Override
    public String getId() {
        return LISTENER_ID;
    }

}

CustomEventListenerProvider:

@Slf4j
@NoArgsConstructor
public class CustomEventListenerProvider implements EventListenerProvider {

    @Override
    public void onEvent(Event event) {
      log.info("Caught event {}", EventUtils.toString(event));
    }

    @Override
    public void onEvent(AdminEvent adminEvent, boolean b) {
        log.info("Caught admin event {}", EventUtils.toString(adminEvent));

        List<CustomAdminEvent> events = new LinkedList<>();
        events.add(new PasswordResetEvent(adminEvent));

        events.stream().filter(CustomAdminEvent::isValid).forEach(CustomAdminEvent::process);
    }

    @Override
    public void close() {

    }
}

但是当我 运行 mvn clean package 复制 target folder after mvn commands the jar file into the path to deployment folder 然后 运行 在 cmd

中启动 Keycloak 的命令
kc.bat start-dev --http-port 8082

没有显示自定义事件。

Events in Keycloak

Png

只是提供商文件夹中的提供商。 主题文件夹中的主题。 不多也不少。 另请阅读这些文件夹中的 READMNE.md....