Package org.opensaml.messaging.handler.impl

# Class AbstractMessageChannelSecurity

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.handler.AbstractMessageHandler
org.opensaml.messaging.handler.impl.AbstractMessageChannelSecurity

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `MessageHandler`

Direct Known Subclasses:
  `StaticMessageChannelSecurity`, `URLEvaluatingMessageChannelSecurity`

public abstract class AbstractMessageChannelSecurity extends AbstractMessageHandler
Abstract base class for message handlers which populate a `MessageChannelSecurityContext` on a `BaseContext`, where the latter is located using a lookup strategy.

## Field Summary

Fields
Modifier and Type
Field
Description
`private BaseContext`
`parentContext`
Parent for eventual context.
`private Function<MessageContext,BaseContext>`
`parentContextLookupStrategy`
Strategy used to look up the parent `BaseContext` on which the `MessageChannelSecurityContext` will be populated.

## Constructor Summary

Constructors
Constructor
Description
`AbstractMessageChannelSecurity()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected boolean`
`doPreInvoke(MessageContext messageContext)`
Called prior to execution, handlers may override this method to perform pre-processing for a request.
`protected BaseContext`
`ensureParentContext()`
Get the parent context on which the `MessageChannelSecurityContext` will be populated, raising an `IllegalStateException` if null.
`protected BaseContext`
`getParentContext()`
Get the parent context on which the `MessageChannelSecurityContext` will be populated.
`void`
`setParentContextLookupStrategy(Function<MessageContext,BaseContext> strategy)`
Set the strategy used to look up the parent `BaseContext` on which the `MessageChannelSecurityContext` will be populated.

### Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler

`doInvoke, doPostInvoke, doPostInvoke, getActivationCondition, getLogPrefix, invoke, isPreInvokeCalled, setActivationCondition`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.shared.component.InitializableComponent

`initialize, isInitialized`

## Field Details

### parentContextLookupStrategy

@Nonnull private Function<MessageContext,BaseContext> parentContextLookupStrategy
Strategy used to look up the parent `BaseContext` on which the `MessageChannelSecurityContext` will be populated.

### parentContext

@Nullable private BaseContext parentContext
Parent for eventual context.

## Constructor Details

### AbstractMessageChannelSecurity

public AbstractMessageChannelSecurity()
Constructor.

## Method Details

### setParentContextLookupStrategy

public void setParentContextLookupStrategy(@Nonnull Function<MessageContext,BaseContext> strategy)
Set the strategy used to look up the parent `BaseContext` on which the `MessageChannelSecurityContext` will be populated.

Parameters:
  `strategy` - strategy used to look up the parent `BaseContext` on which to populate the `MessageChannelSecurityContext`

### 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 `AbstractMessageHandler.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.

Overrides:
  `doPreInvoke` in class `AbstractMessageHandler`
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

### getParentContext

@Nullable protected BaseContext getParentContext()
Get the parent context on which the `MessageChannelSecurityContext` will be populated.

Returns:
  the parent context

### ensureParentContext

@Nonnull protected BaseContext ensureParentContext()
Get the parent context on which the `MessageChannelSecurityContext` will be populated, raising an `IllegalStateException` if null.

Returns:
  the parent context