Log*_*onJ 5 java spring redhat keycloak keycloak-services
当管理员在 keycloak UI 中创建或删除用户时,我有以下代码会被执行。通过 adminEvent 的帮助:http ://www.keycloak.org/docs/3.0/server_admin/topics/events/admin.html 创建用户通过 adminEvent.getRepresentation() 返回用户详细信息。但是,当删除用户时返回一个空值。
这在删除角色、删除组或删除 user_session 时也是一样的。 (ResourceTypes)
我的问题是如何检索已删除的详细信息?
import org.keycloak.events.admin.AdminEvent;
import org.keycloak.models.UserModel;
public void handleResourceOperation(AdminEvent adminEvent, UserModel user) {
MQMessage queueMessage = new MQMessage();
queueMessage.setIpAddress(adminEvent.getAuthDetails().getIpAddress());
queueMessage.setUsername(user.getUsername());
switch (adminEvent.getOperationType()) {
case CREATE:
LOGGER.info("OPERATION : CREATE USER");
LOGGER.info("USER Representation : " + adminEvent.getRepresentation());
String[] split = adminEvent.getRepresentation().split(",");
queueMessage.setTransactionDetail("Created user " + split[0].substring(12));
sendQueueMessage(adminEvent, queueMessage);
break;
case DELETE:
LOGGER.info("OPERATION : DELETE USER");
LOGGER.info("USER Representation : " + adminEvent.getRepresentation());
queueMessage.setTransactionDetail("User has been deleted.");
sendQueueMessage(adminEvent, queueMessage);
break;
}
Run Code Online (Sandbox Code Playgroud)
我不确定你现在已经得到答案了。分享可能对其他人有帮助的解决方案。可以在 EventListenerProviderFactory 的方法中捕获用户详细信息,postInit如下所示,
public class UserEventListenerProviderFactory implements EventListenerProviderFactory {
@Override
public EventListenerProvider create(KeycloakSession keycloakSession) {
return new UserEventListenerProvider(keycloakSession);
}
@Override
public void init(Config.Scope scope) {
}
@Override
public void postInit(KeycloakSessionFactory keycloakSessionFactory) {
keycloakSessionFactory.register(
(event) -> {
if (event instanceof UserModel.UserRemovedEvent) {
UserModel.UserRemovedEvent dEvent = (UserModel.UserRemovedEvent) event;
//TODO YOUR LOGIC WITH `dEvent.getUser()`
}
});
}
@Override
public void close() {
}
@Override
public String getId() {
return "sample_event_listener";
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |