Package org.opensaml.security.messaging.impl

# Class PopulateHttpClientSecurityParametersHandler

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

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

public class PopulateHttpClientSecurityParametersHandler extends AbstractMessageHandler
Handler that resolves and populates `HttpClientSecurityParameters` on a `HttpClientSecurityContext` created/accessed via a lookup function, by default as an immediate child context of the target `MessageContext`.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Predicate<MessageContext>`
`clientTLSPredicate`
Predicate which determines whether clientTLS credentials should be included in the resolved parameters.
`private Function<MessageContext,List<HttpClientSecurityConfiguration>>`
`configurationLookupStrategy`
Strategy used to look up a per-request `HttpClientSecurityConfiguration` list.
`private Function<MessageContext,HttpClientSecurityContext>`
`existingParametersContextLookupStrategy`
Strategy used to look up an existing `HttpClientSecurityContext` to copy.
`private final org.slf4j.Logger`
`log`
Class logger.
`private HttpClientSecurityParametersResolver`
`resolver`
Resolver for parameters to store into context.
`private Function<MessageContext,HttpClientSecurityContext>`
`securityParametersContextLookupStrategy`
Strategy used to look up the `HttpClientSecurityContext` to set the parameters for.

## Constructor Summary

Constructors
Constructor
Description
`PopulateHttpClientSecurityParametersHandler()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doInitialize()`
`protected void`
`doInvoke(MessageContext messageContext)`
Performs the handler logic.
`protected boolean`
`doPreInvoke(MessageContext messageContext)`
Called prior to execution, handlers may override this method to perform pre-processing for a request.
`protected void`
`postProcessParams(MessageContext messageContext, HttpClientSecurityParameters params)`
Post-process the resolved parameters.
`void`
`setClientTLSPredicate(Predicate<MessageContext> predicate)`
Set the predicate which determines whether clientTLS credentials should be included in the resolved parameters.
`void`
`setConfigurationLookupStrategy(Function<MessageContext,List<HttpClientSecurityConfiguration>> strategy)`
Set the strategy used to look up a per-request `HttpClientSecurityConfiguration` list.
`void`
`setExistingParametersContextLookupStrategy(Function<MessageContext,HttpClientSecurityContext> strategy)`
Set the strategy used to look up an existing `HttpClientSecurityContext` to copy instead of actually resolving the parameters to set.
`void`
`setHttpClientSecurityParametersResolver(HttpClientSecurityParametersResolver newResolver)`
Set the resolver to use for the parameters to store into the context.
`void`
`setSecurityParametersContextLookupStrategy(Function<MessageContext,HttpClientSecurityContext> strategy)`
Set the strategy used to look up the `HttpClientSecurityContext` to set the parameters for.

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

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

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, 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

### log

@Nonnull private final org.slf4j.Logger log
Class logger.

### securityParametersContextLookupStrategy

@Nonnull private Function<MessageContext,HttpClientSecurityContext> securityParametersContextLookupStrategy
Strategy used to look up the `HttpClientSecurityContext` to set the parameters for.

### existingParametersContextLookupStrategy

@Nullable private Function<MessageContext,HttpClientSecurityContext> existingParametersContextLookupStrategy
Strategy used to look up an existing `HttpClientSecurityContext` to copy.

### configurationLookupStrategy

@NonnullAfterInit private Function<MessageContext,List<HttpClientSecurityConfiguration>> configurationLookupStrategy
Strategy used to look up a per-request `HttpClientSecurityConfiguration` list.

### resolver

@NonnullAfterInit private HttpClientSecurityParametersResolver resolver
Resolver for parameters to store into context.

### clientTLSPredicate

@Nullable private Predicate<MessageContext> clientTLSPredicate
Predicate which determines whether clientTLS credentials should be included in the resolved parameters.

## Constructor Details

### PopulateHttpClientSecurityParametersHandler

public PopulateHttpClientSecurityParametersHandler()
Constructor.

## Method Details

### setClientTLSPredicate

public void setClientTLSPredicate(@Nullable Predicate<MessageContext> predicate)
Set the predicate which determines whether clientTLS credentials should be included in the resolved parameters.

Parameters:
  `predicate` - clientTLS predicate

### setSecurityParametersContextLookupStrategy

public void setSecurityParametersContextLookupStrategy(@Nonnull Function<MessageContext,HttpClientSecurityContext> strategy)
Set the strategy used to look up the `HttpClientSecurityContext` to set the parameters for.

Parameters:
  `strategy` - lookup strategy

### setExistingParametersContextLookupStrategy

public void setExistingParametersContextLookupStrategy(@Nullable Function<MessageContext,HttpClientSecurityContext> strategy)
Set the strategy used to look up an existing `HttpClientSecurityContext` to copy instead of actually resolving the parameters to set.

Parameters:
  `strategy` - lookup strategy

### setConfigurationLookupStrategy

public void setConfigurationLookupStrategy(@Nonnull Function<MessageContext,List<HttpClientSecurityConfiguration>> strategy)
Set the strategy used to look up a per-request `HttpClientSecurityConfiguration` list.

Parameters:
  `strategy` - lookup strategy

### setHttpClientSecurityParametersResolver

public void setHttpClientSecurityParametersResolver(@Nonnull HttpClientSecurityParametersResolver newResolver)
Set the resolver to use for the parameters to store into the context.

Parameters:
  `newResolver` - resolver to use

### doInitialize

protected void doInitialize() throws ComponentInitializationException

Overrides:
  `doInitialize` in class `AbstractInitializableComponent`
Throws:
  `ComponentInitializationException`

### 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

### doInvoke

protected void doInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
Performs the handler logic.

Specified by:
  `doInvoke` in class `AbstractMessageHandler`
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

### postProcessParams

protected void postProcessParams(@Nonnull MessageContext messageContext, @Nullable HttpClientSecurityParameters params)
Post-process the resolved parameters.

Parameters:
  `messageContext` - the current message context
  `params` - the parameters to process