Class PopulateHttpClientSecurityParametersHandler

  • All Implemented Interfaces:
    net.shibboleth.utilities.java.support.component.Component, net.shibboleth.utilities.java.support.component.DestructableComponent, net.shibboleth.utilities.java.support.component.InitializableComponent, org.opensaml.messaging.handler.MessageHandler

    public class PopulateHttpClientSecurityParametersHandler
    extends org.opensaml.messaging.handler.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<org.opensaml.messaging.context.MessageContext> clientTLSPredicate
      Predicate which determines whether clientTLS credentials should be included in the resolved parameters.
      private Function<org.opensaml.messaging.context.MessageContext,​List<org.opensaml.security.httpclient.HttpClientSecurityConfiguration>> configurationLookupStrategy
      Strategy used to look up a per-request HttpClientSecurityConfiguration list.
      private Function<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.HttpClientSecurityContext> existingParametersContextLookupStrategy
      Strategy used to look up an existing HttpClientSecurityContext to copy.
      private org.slf4j.Logger log
      Class logger.
      private org.opensaml.security.httpclient.HttpClientSecurityParametersResolver resolver
      Resolver for parameters to store into context.
      private Function<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.HttpClientSecurityContext> securityParametersContextLookupStrategy
      Strategy used to look up the HttpClientSecurityContext to set the parameters for.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doInitialize()
      protected void doInvoke​(org.opensaml.messaging.context.MessageContext messageContext)
      protected boolean doPreInvoke​(org.opensaml.messaging.context.MessageContext messageContext)
      protected void postProcessParams​(org.opensaml.messaging.context.MessageContext messageContext, org.opensaml.security.httpclient.HttpClientSecurityParameters params)
      Post-process the resolved parameters.
      void setClientTLSPredicate​(Predicate<org.opensaml.messaging.context.MessageContext> predicate)
      Set the predicate which determines whether clientTLS credentials should be included in the resolved parameters.
      void setConfigurationLookupStrategy​(Function<org.opensaml.messaging.context.MessageContext,​List<org.opensaml.security.httpclient.HttpClientSecurityConfiguration>> strategy)
      Set the strategy used to look up a per-request HttpClientSecurityConfiguration list.
      void setExistingParametersContextLookupStrategy​(Function<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.HttpClientSecurityContext> strategy)
      Set the strategy used to look up an existing HttpClientSecurityContext to copy instead of actually resolving the parameters to set.
      void setHttpClientSecurityParametersResolver​(org.opensaml.security.httpclient.HttpClientSecurityParametersResolver newResolver)
      Set the resolver to use for the parameters to store into the context.
      void setSecurityParametersContextLookupStrategy​(Function<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.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, setActivationCondition
      • Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent

        destroy, doDestroy, initialize, isDestroyed, isInitialized
      • Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent

        initialize, isInitialized
    • Field Detail

      • log

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

        @Nonnull
        private Function<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.HttpClientSecurityContext> securityParametersContextLookupStrategy
        Strategy used to look up the HttpClientSecurityContext to set the parameters for.
      • existingParametersContextLookupStrategy

        @Nullable
        private Function<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.HttpClientSecurityContext> existingParametersContextLookupStrategy
        Strategy used to look up an existing HttpClientSecurityContext to copy.
      • configurationLookupStrategy

        @NonnullAfterInit
        private Function<org.opensaml.messaging.context.MessageContext,​List<org.opensaml.security.httpclient.HttpClientSecurityConfiguration>> configurationLookupStrategy
        Strategy used to look up a per-request HttpClientSecurityConfiguration list.
      • resolver

        @NonnullAfterInit
        private org.opensaml.security.httpclient.HttpClientSecurityParametersResolver resolver
        Resolver for parameters to store into context.
      • clientTLSPredicate

        @Nullable
        private Predicate<org.opensaml.messaging.context.MessageContext> clientTLSPredicate
        Predicate which determines whether clientTLS credentials should be included in the resolved parameters.
    • Constructor Detail

      • PopulateHttpClientSecurityParametersHandler

        public PopulateHttpClientSecurityParametersHandler()
        Constructor.
    • Method Detail

      • setClientTLSPredicate

        public void setClientTLSPredicate​(@Nullable
                                          Predicate<org.opensaml.messaging.context.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<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.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<org.opensaml.messaging.context.MessageContext,​org.opensaml.security.messaging.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<org.opensaml.messaging.context.MessageContext,​List<org.opensaml.security.httpclient.HttpClientSecurityConfiguration>> strategy)
        Set the strategy used to look up a per-request HttpClientSecurityConfiguration list.
        Parameters:
        strategy - lookup strategy
      • setHttpClientSecurityParametersResolver

        public void setHttpClientSecurityParametersResolver​(@Nonnull
                                                            org.opensaml.security.httpclient.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 net.shibboleth.utilities.java.support.component.ComponentInitializationException
        Overrides:
        doInitialize in class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
        Throws:
        net.shibboleth.utilities.java.support.component.ComponentInitializationException
      • doPreInvoke

        protected boolean doPreInvoke​(@Nonnull
                                      org.opensaml.messaging.context.MessageContext messageContext)
                               throws org.opensaml.messaging.handler.MessageHandlerException
        Overrides:
        doPreInvoke in class org.opensaml.messaging.handler.AbstractMessageHandler
        Throws:
        org.opensaml.messaging.handler.MessageHandlerException
      • doInvoke

        protected void doInvoke​(@Nonnull
                                org.opensaml.messaging.context.MessageContext messageContext)
                         throws org.opensaml.messaging.handler.MessageHandlerException
        Specified by:
        doInvoke in class org.opensaml.messaging.handler.AbstractMessageHandler
        Throws:
        org.opensaml.messaging.handler.MessageHandlerException
      • postProcessParams

        protected void postProcessParams​(@Nonnull
                                         org.opensaml.messaging.context.MessageContext messageContext,
                                         @Nonnull
                                         org.opensaml.security.httpclient.HttpClientSecurityParameters params)
        Post-process the resolved parameters.
        Parameters:
        messageContext - the current message context
        params - the parameters to process