Class AbstractMessageHandler
- All Implemented Interfaces:
Component
,DestructableComponent
,InitializableComponent
,MessageHandler
- Direct Known Subclasses:
AbstractHeaderGeneratingMessageHandler
,AbstractMessageChannelSecurity
,AddChannelBindingsHeaderHandler
,AddConsentToResponseHandler
,AddECPResponseHeaderHandler
,AddGeneratedKeyHeaderHandler
,AddRelayStateHeaderHandler
,AddRequestAuthenticatedHeaderHandler
,BaseSAMLSimpleSignatureSecurityHandler
,BaseTrustEngineSecurityHandler
,BasicMessageHandlerChain
,CheckAndRecordServerTLSEntityAuthenticationtHandler
,CheckExpectedIssuer
,CheckMandatoryAuthentication
,CheckMandatoryIssuer
,CheckMessageVersionHandler
,EndpointURLSchemeSecurityHandler
,EnvelopeBodyHandler
,ExtractChannelBindingsExtensionsHandler
,ExtractChannelBindingsHeadersHandler
,ExtractConsentFromRequestHandler
,ExtractMessageIDHandler
,ExtractProxiedRequestersHandler
,FunctionMessageHandler
,HTTPRequestValidationHandler
,InResponseToSecurityHandler
,MessageHandlerErrorStrategyAdapter
,MessageLifetimeSecurityHandler
,MessageReplaySecurityHandler
,PopulateHttpClientSecurityParametersHandler
,PopulateSignatureSigningParametersHandler
,PopulateSignatureValidationParametersHandler
,ReceivedEndpointSecurityHandler
,SAML1ArtifactRequestIssuerHandler
,SAML2AuthnRequestsSignedSecurityHandler
,SAMLAddAttributeConsumingServiceHandler
,SAMLMetadataLookupHandler
,SAMLOutboundDestinationHandler
,SAMLOutboundProtocolMessageSigningHandler
,SAMLProtocolAndRoleHandler
,SAMLSOAPDecoderBodyHandler
,SchemaValidateXMLMessage
,SimplePayloadBodyHandler
,ValidateActionHandler
,WSSecuritySAML20AssertionTokenSecurityHandler
MessageHandler
.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Predicate<MessageContext>
Condition dictating whether to run or not.private org.slf4j.Logger
Logger. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
doInvoke
(MessageContext messageContext) Performs the handler logic.protected void
doPostInvoke
(MessageContext messageContext) Called after execution, handlers may override this method to perform post-processing for a request.protected void
doPostInvoke
(MessageContext messageContext, Exception e) Called after execution, handlers may override this method to perform post-processing for a request.protected boolean
doPreInvoke
(MessageContext messageContext) Called prior to execution, handlers may override this method to perform pre-processing for a request.Get activation condition indicating whether the handler should be invoked.protected String
Return a prefix for logging messages for this component.void
invoke
(MessageContext messageContext) Invoke the handler on the specified message context.void
setActivationCondition
(Predicate<MessageContext> condition) Set activation condition indicating whether the handler should be invoked.Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
private org.slf4j.Logger logLogger. -
activationCondition
Condition dictating whether to run or not.
-
-
Constructor Details
-
AbstractMessageHandler
public AbstractMessageHandler()Constructor.
-
-
Method Details
-
getActivationCondition
Get activation condition indicating whether the handler should be invoked.Defaults to a predicate which always returns
true
.- Returns:
- activation condition
-
setActivationCondition
Set activation condition indicating whether the handler should be invoked.Defaults to a predicate which always returns
true
.- Parameters:
condition
- predicate to apply
-
invoke
Invoke the handler on the specified message context.- Specified by:
invoke
in interfaceMessageHandler
- Parameters:
messageContext
- the message context on which to invoke the handler- Throws:
MessageHandlerException
- if the there is an error invoking the handler on the message context
-
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 thesetActivationCondition(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
-
doPostInvoke
Called after execution, handlers may override this method to perform post-processing for a request.Handlers must not "fail" during this step. This method will not be called if
doPreInvoke(org.opensaml.messaging.context.MessageContext)
fails, but is called if an exception is raised bydoInvoke(org.opensaml.messaging.context.MessageContext)
.- Parameters:
messageContext
- the message context on which the handler was invoked
-
doPostInvoke
Called after execution, handlers may override this method to perform post-processing for a request.Handlers must not "fail" during this step. This method will not be called if
doPreInvoke(org.opensaml.messaging.context.MessageContext)
fails, but is called if an exception is raised bydoInvoke(org.opensaml.messaging.context.MessageContext)
.This version of the method will be called if an exception is raised during execution of the handler. The overall handler result will be to raise this error, so any errors inadvertently raised by this method will be logged and superseded.
The default implementation simply calls the error-less version of this method.
- Parameters:
messageContext
- the message context on which the handler was invokede
- an exception raised by thedoInvoke(org.opensaml.messaging.context.MessageContext)
method
-
getLogPrefix
Return a prefix for logging messages for this component.- Returns:
- a string for insertion at the beginning of any log messages
-