Class JmsAuditEventHandler

    • Constructor Detail

      • JmsAuditEventHandler

        @Inject
        public JmsAuditEventHandler​(JmsContextManager jmsContextManager,
                                    BatchPublisherFactory publisherFactory,
                                    JmsAuditEventHandlerConfiguration configuration,
                                    EventTopicsMetaData eventTopicsMetaData)
                             throws ResourceException
        Creates a new AuditEventHandler instance that publishes JMS messages on a JMS Topic for each Audit event.
        Parameters:
        jmsContextManager - optional injected JmsContextManager.
        publisherFactory - the batch publisher factory or null
        configuration - Configuration parameters that can be adjusted by system administrators.
        eventTopicsMetaData - Meta-data for all audit event topics.
        Throws:
        ResourceException - If JMS connections cannot be established.
    • Method Detail

      • startup

        public void startup()
                     throws ResourceException
        Creates the JMS Topic and ConnectionFactory from the context configuration settings and opens the JMS connection.
        Specified by:
        startup in interface AuditEventHandler
        Throws:
        ResourceException - if starting the AuditEventHandler fails
      • queryEvents

        public Promise<QueryResponse,​ResourceException> queryEvents​(org.forgerock.services.context.Context context,
                                                                          String topic,
                                                                          QueryRequest queryRequest,
                                                                          QueryResourceHandler queryResourceHandler)

        Returns NotSupportedException as query is not implemented for JMS.

        Query some events from the provided topic.
        Specified by:
        queryEvents in interface AuditEventHandler
        Parameters:
        context - The context chain that initiated the event.
        topic - The topic on which query is performed.
        queryRequest - The request with the query.
        queryResourceHandler - The handler to process responses for the query.
        Returns:
        NotSupportedException as query is not implemented for JMS.
      • readEvent

        public Promise<ResourceResponse,​ResourceException> readEvent​(org.forgerock.services.context.Context context,
                                                                           String topic,
                                                                           String resourceId)

        Returns NotSupportedException as read is not implemented for JMS.

        Reads an event with the provided resource id from the provided topic.
        Specified by:
        readEvent in interface AuditEventHandler
        Parameters:
        context - The context chain that initiated the event.
        topic - The topic where event is read.
        resourceId - The identifier of the event.
        Returns:
        NotSupportedException as read is not implemented for JMS.
      • publishEvent

        public Promise<ResourceResponse,​ResourceException> publishEvent​(org.forgerock.services.context.Context context,
                                                                              String topic,
                                                                              JsonValue event)
        Description copied from interface: AuditEventHandler
        Publishes an event to the provided topic.

        Note for implementors, it is imperative that the supplied event is not modified in any way as this may cause undesirable behaviour where multiple handlers are configured. If the event must be modified, then make a copy of it and work with that.

        Specified by:
        publishEvent in interface AuditEventHandler
        Parameters:
        context - The context chain that initiated the event.
        topic - The topic where to publish the event.
        event - The event to publish - which should be considered immutable.
        Returns:
        a promise with either a response or an exception