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
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
FieldsModifier and TypeFieldDescriptionprivate Predicate<MessageContext>Predicate which determines whether clientTLS credentials should be included in the resolved parameters.Strategy used to look up a per-requestHttpClientSecurityConfigurationlist.Strategy used to look up an existingHttpClientSecurityContextto copy.private final org.slf4j.LoggerClass logger.Resolver for parameters to store into context.Strategy used to look up theHttpClientSecurityContextto set the parameters for. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voiddoInvoke(MessageContext messageContext) Performs the handler logic.protected booleandoPreInvoke(MessageContext messageContext) Called prior to execution, handlers may override this method to perform pre-processing for a request.protected voidpostProcessParams(MessageContext messageContext, HttpClientSecurityParameters params) Post-process the resolved parameters.voidsetClientTLSPredicate(Predicate<MessageContext> predicate) Set the predicate which determines whether clientTLS credentials should be included in the resolved parameters.voidsetConfigurationLookupStrategy(Function<MessageContext, List<HttpClientSecurityConfiguration>> strategy) Set the strategy used to look up a per-requestHttpClientSecurityConfigurationlist.voidsetExistingParametersContextLookupStrategy(Function<MessageContext, HttpClientSecurityContext> strategy) Set the strategy used to look up an existingHttpClientSecurityContextto copy instead of actually resolving the parameters to set.voidSet the resolver to use for the parameters to store into the context.voidsetSecurityParametersContextLookupStrategy(Function<MessageContext, HttpClientSecurityContext> strategy) Set the strategy used to look up theHttpClientSecurityContextto set the parameters for.Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler
doPostInvoke, doPostInvoke, getActivationCondition, getLogPrefix, invoke, isPreInvokeCalled, setActivationConditionMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
securityParametersContextLookupStrategy
@Nonnull private Function<MessageContext,HttpClientSecurityContext> securityParametersContextLookupStrategyStrategy used to look up theHttpClientSecurityContextto set the parameters for. -
existingParametersContextLookupStrategy
@Nullable private Function<MessageContext,HttpClientSecurityContext> existingParametersContextLookupStrategyStrategy used to look up an existingHttpClientSecurityContextto copy. -
configurationLookupStrategy
@NonnullAfterInit private Function<MessageContext,List<HttpClientSecurityConfiguration>> configurationLookupStrategyStrategy used to look up a per-requestHttpClientSecurityConfigurationlist. -
resolver
Resolver for parameters to store into context. -
clientTLSPredicate
Predicate which determines whether clientTLS credentials should be included in the resolved parameters.
-
-
Constructor Details
-
PopulateHttpClientSecurityParametersHandler
public PopulateHttpClientSecurityParametersHandler()Constructor.
-
-
Method Details
-
setClientTLSPredicate
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 theHttpClientSecurityContextto 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 existingHttpClientSecurityContextto 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-requestHttpClientSecurityConfigurationlist.- 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
- Overrides:
doInitializein classAbstractInitializableComponent- 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
Predicateset via theAbstractMessageHandler.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:
doPreInvokein classAbstractMessageHandler- 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
Performs the handler logic.- Specified by:
doInvokein classAbstractMessageHandler- 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 contextparams- the parameters to process
-