Keycloak KeyClope-事件侦听器提供程序未触发新领域创建事件

Keycloak KeyClope-事件侦听器提供程序未触发新领域创建事件,keycloak,keycloak-services,Keycloak,Keycloak Services,我已经实现了一个自定义事件侦听器提供程序 我能够接收除领域创建事件(新领域创建)之外的所有事件。我想在创建领域的过程中也得到这个事件 keydepeat支持这一点吗?如果没有,还有其他实现这一目标的可能性吗 我使用的是KeyClope 4.5.0版 提前感谢。在对keydeport代码进行了一些研究之后,我得出结论,keydeport默认不提供该事件 所以我修改了下面的keydape文件,这将有助于捕获领域创建和删除事件 更改1(最重要): 文件: keydape/services/src/ma

我已经实现了一个自定义事件侦听器提供程序

我能够接收除领域创建事件(新领域创建)之外的所有事件。我想在创建领域的过程中也得到这个事件

keydepeat支持这一点吗?如果没有,还有其他实现这一目标的可能性吗

我使用的是KeyClope 4.5.0版


提前感谢。

在对keydeport代码进行了一些研究之后,我得出结论,keydeport默认不提供该事件

所以我修改了下面的keydape文件,这将有助于捕获领域创建和删除事件

更改1(最重要):

文件:

keydape/services/src/main/java/org/keydape/services/managers/RealmManager.java

功能:

受保护的无效设置RealmDefaults

在上面的函数中,您应该在领域创建期间将事件侦听器添加到领域

Set<String> eventListenerSet = new HashSet<>();
eventListenerSet.add("jboss-logging"); //This listener will be there by default
eventListenerSet.add("EVENT_LISTENER_YOU_WANT_TO_RECEIVE_EVENT");
realm.setEventsListeners(eventListenerSet);
更改3(仅当需要删除事件时才需要)

文件:

keydape/services/src/main/java/org/keydape/services/resources/admin/RealmAdminResource.java

功能:

公共领域

在第一行后添加以下代码

AdminAuth adminAuth = auth.adminAuth();
RealmRepresentation realmRepresentation = new RealmRepresentation();
realmRepresentation.setRealm(realm.getName());
AdminEventBuilder adminEvent = new AdminEventBuilder(realm, adminAuth, session, connection);
adminEvent.operation(OperationType.DELETE).resource(ResourceType.REALM).representation(realmRepresentation).success();

有一个原因使得keypove开发者不实现这个特性?我不确定,但他们似乎没有这样的用例,或者从keypove的角度来看,这个用例超出了范围。就我所了解的代码而言,这个实现没有安全问题或类似的问题。
AdminAuth adminAuth = auth.adminAuth();
RealmRepresentation realmRepresentation = new RealmRepresentation();
realmRepresentation.setRealm(realm.getName());
AdminEventBuilder adminEvent = new AdminEventBuilder(realm, adminAuth, session, connection);
adminEvent.operation(OperationType.DELETE).resource(ResourceType.REALM).representation(realmRepresentation).success();