Module org.apache.santuario.xmlsec
Package org.apache.xml.security.stax.ext
Interface OutputProcessor
- All Known Implementing Classes:
AbstractBufferingOutputProcessor,AbstractEncryptEndingOutputProcessor,AbstractEncryptOutputProcessor,AbstractEncryptOutputProcessor.AbstractInternalEncryptionOutputProcessor,AbstractOutputProcessor,AbstractSignatureEndingOutputProcessor,AbstractSignatureEndingOutputProcessor.SignedInfoProcessor,AbstractSignatureOutputProcessor,AbstractSignatureOutputProcessor.InternalSignatureOutputProcessor,FinalOutputProcessor,XMLEncryptOutputProcessor,XMLSignatureEndingOutputProcessor,XMLSignatureOutputProcessor
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(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(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
-