Added interesting events filter, ignoring the publish of all the others

This commit is contained in:
Mauro Mugnaini 2020-11-17 11:41:33 +01:00
parent 5370e98760
commit a625864145
1 changed files with 24 additions and 2 deletions

View File

@ -1,6 +1,8 @@
package org.gcube.keycloak.event;
import java.util.EventListener;
import java.util.HashSet;
import java.util.Set;
import org.gcube.event.publisher.AbstractEventPublisher;
import org.gcube.event.publisher.EventSender;
@ -8,6 +10,7 @@ import org.gcube.event.publisher.HTTPWithUMAAuthEventSender;
import org.jboss.logging.Logger;
import org.keycloak.events.Event;
import org.keycloak.events.EventListenerProvider;
import org.keycloak.events.EventType;
import org.keycloak.events.admin.AdminEvent;
/**
@ -19,6 +22,21 @@ public class OrchestratorEventPublisherProvider extends AbstractEventPublisher
public static final Logger logger = Logger.getLogger(OrchestratorEventPublisherProvider.class);
private static final Set<EventType> INTERESTING_EVENTS = new HashSet<>();
static {
INTERESTING_EVENTS.add(EventType.CLIENT_DELETE);
INTERESTING_EVENTS.add(EventType.CLIENT_DELETE_ERROR);
INTERESTING_EVENTS.add(EventType.FEDERATED_IDENTITY_LINK);
INTERESTING_EVENTS.add(EventType.FEDERATED_IDENTITY_LINK_ERROR);
INTERESTING_EVENTS.add(EventType.IDENTITY_PROVIDER_FIRST_LOGIN);
INTERESTING_EVENTS.add(EventType.IDENTITY_PROVIDER_FIRST_LOGIN_ERROR);
INTERESTING_EVENTS.add(EventType.REGISTER);
INTERESTING_EVENTS.add(EventType.REGISTER_ERROR);
INTERESTING_EVENTS.add(EventType.UPDATE_EMAIL);
INTERESTING_EVENTS.add(EventType.VERIFY_EMAIL_ERROR);
}
public OrchestratorEventPublisherProvider() {
super();
}
@ -29,8 +47,12 @@ public class OrchestratorEventPublisherProvider extends AbstractEventPublisher
@Override
public void onEvent(Event event) {
if (event.getError() != null) {
logger.debug("Skipping error event publish");
// if (event.getError() != null) {
// logger.debug("Skipping error event publish");
// return;
// }
if (!INTERESTING_EVENTS.contains(event.getType())) {
logger.debug("Skipping publish of not interesting event");
return;
}
logger.debug("Publishing new event to orchestrator");