Module org.apache.santuario.xmlsec
Package org.apache.xml.security.stax.ext
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:
XMLSecurityConstants.Phase(required)-
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
-1it will be ignored. The action order thus only defines the order between two processors if both these processors have an action order !=-1. - Before/after processors based on processor classes (optional): this allows ordering of processors typically belonging to a single action.
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddAfterProcessor(Class<? extends OutputProcessor> processor) Add this processor after the given processorvoidaddBeforeProcessor(Class<? extends OutputProcessor> processor) Add this processor before the given processorvoiddoFinal(OutputProcessorChain outputProcessorChain) Will be called when the whole document is processed.intSet<Class<? extends OutputProcessor>> This OutputProcessor will be added after the processors in this setSet<Class<? extends OutputProcessor>> This OutputProcessor will be added before the processors in this setgetPhase()The Phase in which this OutputProcessor should be appliedvoidinit(OutputProcessorChain outputProcessorChain) Method will be called after setting the propertiesvoidprocessEvent(org.apache.xml.security.stax.ext.stax.XMLSecEvent xmlSecEvent, OutputProcessorChain outputProcessorChain) Will be called from the framework for every XMLEventvoidsetAction(XMLSecurityConstants.Action action, int actionOrder) setter for the Action after instantiation of the processorvoidsetXMLSecurityProperties(XMLSecurityProperties xmlSecurityProperties) setter for the XMLSecurityProperties after instantiation of the processor
-
Method Details
-
setXMLSecurityProperties
setter for the XMLSecurityProperties after instantiation of the processor- Parameters:
xmlSecurityProperties-
-
setAction
setter for the Action after instantiation of the processor- Parameters:
action- The action this processor belongs to, possiblynullfor no particular action.actionOrder- The action order of this processor, possibly-1for no particular action order.
-
getAction
XMLSecurityConstants.Action getAction()- Returns:
- The action to which this processor belongs, if any, else
null.
-
getActionOrder
int getActionOrder()- Returns:
- The action order of this processor, or
-1.
-
init
Method will be called after setting the properties- Throws:
XMLSecurityException
-
addBeforeProcessor
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
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
-
getPhase
XMLSecurityConstants.Phase getPhase()The Phase in which this OutputProcessor should be applied- Returns:
- The Phase
-
processEvent
void processEvent(org.apache.xml.security.stax.ext.stax.XMLSecEvent xmlSecEvent, OutputProcessorChain outputProcessorChain) throws XMLStreamException, XMLSecurityException Will be called from the framework for every XMLEvent- Parameters:
xmlSecEvent- The next XMLEvent to processoutputProcessorChain-- Throws:
XMLStreamException- thrown when a streaming error occursXMLSecurityException- thrown when a Security failure occurs
-
doFinal
void doFinal(OutputProcessorChain outputProcessorChain) throws XMLStreamException, XMLSecurityException Will be called when the whole document is processed.- Parameters:
outputProcessorChain-- Throws:
XMLStreamException- thrown when a streaming error occursXMLSecurityException- thrown when a Security failure occurs
-