Class ClientCredentialsHttpClientFilter

  • All Implemented Interfaces:
    io.micronaut.core.order.Ordered, io.micronaut.http.filter.HttpClientFilter, io.micronaut.http.filter.HttpFilter

    @Filter("/**")
    public class ClientCredentialsHttpClientFilter
    extends java.lang.Object
    implements io.micronaut.http.filter.HttpClientFilter
    An HttpClientFilter to add an access token to outgoing request thanks to a Client Credentials request.
    Since:
    2.2.0
    • Field Detail

      • outgoingHttpRequestProcessor

        protected final io.micronaut.http.util.OutgoingHttpRequestProcessor outgoingHttpRequestProcessor
      • oauthClientConfigurationCollection

        protected final java.util.List<OauthClientConfiguration> oauthClientConfigurationCollection
      • beanContext

        protected final io.micronaut.context.BeanContext beanContext
      • clientCredentialsClientsByName

        protected final java.util.Map<java.lang.String,​ClientCredentialsClient> clientCredentialsClientsByName
    • Constructor Detail

      • ClientCredentialsHttpClientFilter

        public ClientCredentialsHttpClientFilter​(io.micronaut.http.util.OutgoingHttpRequestProcessor outgoingHttpRequestProcessor,
                                                 java.util.stream.Stream<OauthClientConfiguration> oauthClientConfigurationStream,
                                                 ClientCredentialsTokenPropagator defaultTokenPropagator,
                                                 io.micronaut.context.BeanContext beanContext)
        Parameters:
        outgoingHttpRequestProcessor - Utility to decide whether to process the request
        oauthClientConfigurationStream - OAuth 2.0 Clients configuration stream
        defaultTokenPropagator - The default token propagator
        beanContext - Bean Context
    • Method Detail

      • doFilter

        public org.reactivestreams.Publisher<? extends io.micronaut.http.HttpResponse<?>> doFilter​(io.micronaut.http.MutableHttpRequest<?> request,
                                                                                                   io.micronaut.http.filter.ClientFilterChain chain)
        Specified by:
        doFilter in interface io.micronaut.http.filter.HttpClientFilter
      • getScope

        @Nullable
        protected java.lang.String getScope​(@NonNull
                                            OauthClientConfiguration oauthClient)
        Parameters:
        oauthClient - OAuth 2.0 Client configuration
        Returns:
        The desired scope for client credentials grant or null if no scope should be specified
      • getClient

        protected java.util.Optional<ClientCredentialsClient> getClient​(@NonNull
                                                                        OauthClientConfiguration oauthClient)
        Parameters:
        oauthClient - OAuth 2.0 Client configuration
        Returns:
        The Client credentials client for the OAuth 2.0 Client.
      • getClientConfiguration

        protected java.util.Optional<OauthClientConfiguration> getClientConfiguration​(io.micronaut.http.HttpRequest<?> request)
        Parameters:
        request - Http Request
        Returns:
        An OAuth 2.0 Client configuration which has client credentials configuration set and should process the request