package org.gcube.keycloak.event; import java.util.EventListener; import org.gcube.event.publisher.AbstractEventPublisher; import org.gcube.event.publisher.EventSender; 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.admin.AdminEvent; /** * @author Marco Lettere * @author Mauro Mugnaini */ public class OrchestratorEventPublisherProvider extends AbstractEventPublisher implements EventListenerProvider, EventListener { public static final Logger logger = Logger.getLogger(OrchestratorEventPublisherProvider.class); public OrchestratorEventPublisherProvider() { super(); } @Override public void close() { } @Override public void onEvent(Event event) { if (event.getError() != null) { logger.debug("Skipping error event publish"); return; } logger.debug("Publishing new event to orchestrator"); publish(KeycloakEvent.newKeycloakEvent(event)); } @Override public void onEvent(AdminEvent event, boolean includeRepresentation) { if (event.getError() != null) { logger.debug("Skipping error admin event publish"); return; } logger.debug("Publishing new admin event to orchestrator"); publish(KeycloakEvent.newKeycloakAdminEvent(event)); } @Override protected EventSender createEventSender() { logger.infof("Creating the HTTP event sender with endpoint: %s", OrchestratorEventPublisherProviderFactory.endpoint); return new HTTPWithUMAAuthEventSender(OrchestratorEventPublisherProviderFactory.endpoint, null, null, null, null); } }