Class ClientCredentialsHttpClientFilter
- java.lang.Object
-
- io.micronaut.security.oauth2.client.clientcredentials.propagation.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.HttpClientFilterAnHttpClientFilterto add an access token to outgoing request thanks to a Client Credentials request.- Since:
- 2.2.0
-
-
Field Summary
Fields Modifier and Type Field Description protected io.micronaut.context.BeanContextbeanContextprotected java.util.Map<java.lang.String,ClientCredentialsClient>clientCredentialsClientsByNameprotected java.util.Map<java.lang.String,ClientCredentialsTokenPropagator>clientCredentialsTokenHandlerByNameprotected java.util.List<OauthClientConfiguration>oauthClientConfigurationCollectionprotected io.micronaut.http.util.OutgoingHttpRequestProcessoroutgoingHttpRequestProcessor
-
Constructor Summary
Constructors Constructor Description ClientCredentialsHttpClientFilter(io.micronaut.http.util.OutgoingHttpRequestProcessor outgoingHttpRequestProcessor, java.util.stream.Stream<OauthClientConfiguration> oauthClientConfigurationStream, ClientCredentialsTokenPropagator defaultTokenPropagator, io.micronaut.context.BeanContext beanContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.reactivestreams.Publisher<? extends io.micronaut.http.HttpResponse<?>>doFilter(io.micronaut.http.MutableHttpRequest<?> request, io.micronaut.http.filter.ClientFilterChain chain)protected java.util.Optional<ClientCredentialsClient>getClient(OauthClientConfiguration oauthClient)protected java.util.Optional<OauthClientConfiguration>getClientConfiguration(io.micronaut.http.HttpRequest<?> request)protected java.lang.StringgetScope(OauthClientConfiguration oauthClient)protected ClientCredentialsTokenPropagatorgetTokenHandler(OauthClientConfiguration oauthClient)
-
-
-
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
-
clientCredentialsTokenHandlerByName
protected final java.util.Map<java.lang.String,ClientCredentialsTokenPropagator> clientCredentialsTokenHandlerByName
-
-
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 requestoauthClientConfigurationStream- OAuth 2.0 Clients configuration streamdefaultTokenPropagator- The default token propagatorbeanContext- 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:
doFilterin interfaceio.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.
-
getTokenHandler
protected ClientCredentialsTokenPropagator getTokenHandler(@NonNull OauthClientConfiguration oauthClient)
- Parameters:
oauthClient- OAuth 2.0 Client configuration- Returns:
- The Client credentials token propagator 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
-
-