Interface OutputProcessor

  • All Known Implementing Classes:
    AbstractBufferingOutputProcessor, AbstractOutputProcessor

    public interface OutputProcessor
    This is the Interface which every OutputProcessor must implement. The order of processors is defined by:
    1. XMLSecurityConstants.Phase (required)
    2. Action order (optional): allows grouping processors per action without them accidentally being reordered incorrectly by processors of unrelated other action. It helps grouping processors where before/after processor classes doesn't cut it: signature-after-encryption is a valid use case, but also encryption-after-signature. There is no absolute ordering of signature processors versus encryption processors. That is where the action order comes in: whichever action comes first, it groups those processors together such they can't accidentally get mingled in between processors of unrelated actions. It's optional, if you set the action order to -1 it will be ignored. The action order thus only defines the order between two processors if both these processors have an action order != -1.
    3. Before/after processors based on processor classes (optional): this allows ordering of processors typically belonging to a single action.
    • Method Detail

      • setXMLSecurityProperties

        void setXMLSecurityProperties​(XMLSecurityProperties xmlSecurityProperties)
        setter for the XMLSecurityProperties after instantiation of the processor
        Parameters:
        xmlSecurityProperties -
      • setAction

        void setAction​(XMLSecurityConstants.Action action,
                       int actionOrder)
        setter for the Action after instantiation of the processor
        Parameters:
        action - The action this processor belongs to, possibly null for no particular action.
        actionOrder - The action order of this processor, possibly -1 for no particular action order.
      • getActionOrder

        int getActionOrder()
        Returns:
        The action order of this processor, or -1.
      • addBeforeProcessor

        void addBeforeProcessor​(Class<? extends OutputProcessor> processor)
        Add this processor before the given processor
        Parameters:
        processor -
      • getBeforeProcessors

        Set<Class<? extends OutputProcessor>> getBeforeProcessors()
        This OutputProcessor will be added before the processors in this set
        Returns:
        The set with the named OutputProcessor
      • addAfterProcessor

        void addAfterProcessor​(Class<? extends OutputProcessor> processor)
        Add this processor after the given processor
        Parameters:
        processor -
      • getAfterProcessors

        Set<Class<? extends OutputProcessor>> getAfterProcessors()
        This OutputProcessor will be added after the processors in this set
        Returns:
        The set with the named OutputProcessor