private EventInterceptorTemplate<T, X> pushEvent(String eventId, Map<String, Object> eventProperties) throws IdentityStoreException { Event event = new Event(eventId, eventProperties); try { eventService.pushEvent(event, messageContext); } catch (IdentityException e) { String message = String.format("Error while handling %s event.", eventId); throw new IdentityStoreException(message, e); } return this; }
"for event: " + event.getEventName()).append("\n"); String failure = String.format("Error during rollback operation of handler: %s for event: %s", command.getIdentityEventHandler().getName(), command.getEvent().getEventName()); log.error(failure, e); builder.append(failure).append("\n");
logger.debug("Executing handler: " + handler.getName() + " on event: " + event.getEventName()); } catch (IdentityException e) { logger.error("Error while invoking handler: " + handler.getName() + " on event: " + event .getEventName(), e);
private void triggerNotification(String userUniqueId, String type, String code) throws IdentityRecoveryException { String eventName = EventConstants.Event.TRIGGER_NOTIFICATION; HashMap<String, Object> properties = new HashMap<>(); properties.put(EventConstants.EventProperty.USER_UNIQUE_ID, userUniqueId); if (StringUtils.isNotBlank(code)) { properties.put(IdentityRecoveryConstants.CONFIRMATION_CODE, code); } properties.put(IdentityRecoveryConstants.TEMPLATE_TYPE, type); Event identityMgtEvent = new Event(eventName, properties); EventContext eventContext = new EventContext(); try { IdentityRecoveryServiceDataHolder.getInstance().getIdentityEventService().pushEvent(identityMgtEvent, eventContext); } catch (IdentityException e) { throw Utils.handleServerException(IdentityRecoveryConstants.ErrorMessages.ERROR_CODE_TRIGGER_NOTIFICATION, userUniqueId, e); } }
public boolean canHandle(Event event, MessageContext messageContext) throws IdentityRuntimeException { if (!(messageContext instanceof EventContext)) { return false; } String eventName = event.getEventName(); String moduleName = this.getName(); ConfigParser notificationMgtConfigBuilder; try { notificationMgtConfigBuilder = ConfigParser.getInstance(); } catch (EventException e) { logger.error("Error while retrieving event mgt config builder.", e); return false; } List<Subscription> subscriptionList = null; //TODO see whether this can be removed. ModuleConfig moduleConfig = notificationMgtConfigBuilder.getModuleConfigurations(moduleName); if (moduleConfig != null) { subscriptionList = moduleConfig.getSubscriptions(); } if (subscriptionList != null) { return subscriptionList.stream() .anyMatch(sub -> sub.getSubscriptionName().equals(eventName)); } return false; }
/** * Executes the main logic, which is the primary method being intercepted. * * @param delegate Event handler delegate. * @return Event interceptor template. * @throws X If ann error occur while executing the identity store operation. */ public EventInterceptorTemplate<T, X> executeWith(EventHandlerDelegate<T> delegate) throws X { ResultReturningHandler<T, X> resultReturningHandler = new ResultReturningHandler<T, X>() { @Override public T handleEventWithResult(EventContext eventContext, Event event) throws X { try { return delegate.execute(); } catch (Exception e) { throw (X) e; } } }; try { eventService.pushEvent(new Event("EventInterceptorTemplate", Collections.emptyMap()), messageContext, resultReturningHandler); result = resultReturningHandler.getResult(); } catch (IdentityException e) { throw (X) e; } return this; }
private void triggerNotification(String userUniqueId, String type, User user) throws IdentityRecoveryException { String eventName = EventConstants.Event.TRIGGER_NOTIFICATION; HashMap<String, Object> properties = new HashMap<>(); properties.put(EventConstants.EventProperty.USER_UNIQUE_ID, userUniqueId); properties.put(EventConstants.EventProperty.USER_STORE_DOMAIN, user.getDomainName()); properties.put(IdentityRecoveryConstants.TEMPLATE_TYPE, type); Event identityMgtEvent = new Event(eventName, properties); EventContext eventContext = new EventContext(); try { IdentityRecoveryServiceDataHolder.getInstance().getIdentityEventService().pushEvent(identityMgtEvent, eventContext); } catch (IdentityException e) { throw Utils.handleServerException(IdentityRecoveryConstants.ErrorMessages.ERROR_CODE_TRIGGER_NOTIFICATION, userUniqueId, e); } }
Event identityMgtEvent = new Event(eventName, properties); EventContext eventContext = new EventContext();