Class AbstractMessageHandler

  • All Implemented Interfaces:
    net.shibboleth.utilities.java.support.component.Component, net.shibboleth.utilities.java.support.component.DestructableComponent, net.shibboleth.utilities.java.support.component.InitializableComponent, MessageHandler

    @Prototype
    public abstract class AbstractMessageHandler
    extends net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
    implements MessageHandler
    A base abstract implementation of MessageHandler.
    • Field Detail

      • log

        private org.slf4j.Logger log
        Logger.
      • activationCondition

        @Nonnull
        private Predicate<MessageContext> activationCondition
        Condition dictating whether to run or not.
    • Constructor Detail

      • AbstractMessageHandler

        public AbstractMessageHandler()
        Constructor.
    • Method Detail

      • getActivationCondition

        @Nonnull
        public Predicate<MessageContext> getActivationCondition()
        Get activation condition indicating whether the handler should be invoked.

        Defaults to a predicate which always returns true.

        Returns:
        activation condition
      • setActivationCondition

        public void setActivationCondition​(@Nonnull
                                           Predicate<MessageContext> condition)
        Set activation condition indicating whether the handler should be invoked.

        Defaults to a predicate which always returns true.

        Parameters:
        condition - predicate to apply
      • doPreInvoke

        protected boolean doPreInvoke​(@Nonnull
                                      MessageContext messageContext)
                               throws MessageHandlerException
        Called prior to execution, handlers may override this method to perform pre-processing for a request.

        The default impl applies the Predicate set via the setActivationCondition(Predicate).

        If false is returned, execution will not proceed.

        Subclasses which override this method should generally invoke the super version of this method first, so that the activation condition will be applied up front, and immediately return false if the super version returns false. This avoids unnecessary execution of the remaining pre-invocation code if the handler ultimately will not execute.

        Parameters:
        messageContext - the message context on which to invoke the handler
        Returns:
        true iff execution should proceed
        Throws:
        MessageHandlerException - if there is a problem executing the handler pre-routine
      • doInvoke

        protected abstract void doInvoke​(@Nonnull
                                         MessageContext messageContext)
                                  throws MessageHandlerException
        Performs the handler logic.
        Parameters:
        messageContext - the message context on which to invoke the handler
        Throws:
        MessageHandlerException - if there is an error invoking the handler on the message context
      • getLogPrefix

        @Nonnull
        @NotEmpty
        protected String getLogPrefix()
        Return a prefix for logging messages for this component.
        Returns:
        a string for insertion at the beginning of any log messages