Class TenantPropagationHttpClientFilter

java.lang.Object
io.micronaut.multitenancy.propagation.TenantPropagationHttpClientFilter
All Implemented Interfaces:
io.micronaut.core.order.Ordered, io.micronaut.http.filter.HttpClientFilter, io.micronaut.http.filter.HttpFilter

@Filter("${micronaut.multitenancy.propagation.path:/**}") @Requires(beans={TenantWriter.class,TenantResolver.class,TenantPropagationConfiguration.class,io.micronaut.http.util.OutgoingHttpRequestProcessor.class}) @Requires(property="micronaut.multitenancy.propagation.enabled") public class TenantPropagationHttpClientFilter extends Object implements io.micronaut.http.filter.HttpClientFilter
HttpClientFilter to enable Token propagation.
Since:
1.0
Author:
Sergio del Amo
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final io.micronaut.http.util.OutgoingHttpRequestProcessor
    Utility to decide whether to process the request.
    Tenant Propagation Configuration.
    protected final TenantResolver
    Bean responsible for resolving the tenant.
    protected final TenantWriter
    bean responsible for writing the tenant to the target request.

    Fields inherited from interface io.micronaut.core.order.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
    TenantPropagationHttpClientFilter(TenantResolver tenantResolver, TenantWriter tokenWriter, TenantPropagationConfiguration tenantPropagationConfiguration, io.micronaut.http.util.OutgoingHttpRequestProcessor outgoingHttpRequestProcessor)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.reactivestreams.Publisher<? extends io.micronaut.http.HttpResponse<?>>
    doFilter(io.micronaut.http.MutableHttpRequest<?> targetRequest, io.micronaut.http.filter.ClientFilterChain chain)
    If the request should be processed and the tenant id is resolved, the tenant is written to the targeted request with a TenantWriter.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.micronaut.http.filter.HttpClientFilter

    doFilter

    Methods inherited from interface io.micronaut.core.order.Ordered

    getOrder
  • Field Details

    • tenantPropagationConfiguration

      protected final TenantPropagationConfiguration tenantPropagationConfiguration
      Tenant Propagation Configuration.
    • tokenWriter

      protected final TenantWriter tokenWriter
      bean responsible for writing the tenant to the target request.
    • tenantResolver

      protected final TenantResolver tenantResolver
      Bean responsible for resolving the tenant.
    • outgoingHttpRequestProcessor

      protected final io.micronaut.http.util.OutgoingHttpRequestProcessor outgoingHttpRequestProcessor
      Utility to decide whether to process the request.
  • Constructor Details

    • TenantPropagationHttpClientFilter

      public TenantPropagationHttpClientFilter(TenantResolver tenantResolver, TenantWriter tokenWriter, TenantPropagationConfiguration tenantPropagationConfiguration, io.micronaut.http.util.OutgoingHttpRequestProcessor outgoingHttpRequestProcessor)
      Parameters:
      tenantResolver - bean responsible for resolving the tenant
      tokenWriter - bean responsible for writing the token to the target request
      tenantPropagationConfiguration - Tenant Propagation configuration
      outgoingHttpRequestProcessor - Utility to decide whether to process the request
  • Method Details

    • doFilter

      public org.reactivestreams.Publisher<? extends io.micronaut.http.HttpResponse<?>> doFilter(io.micronaut.http.MutableHttpRequest<?> targetRequest, io.micronaut.http.filter.ClientFilterChain chain)
      If the request should be processed and the tenant id is resolved, the tenant is written to the targeted request with a TenantWriter.
      Specified by:
      doFilter in interface io.micronaut.http.filter.HttpClientFilter
      Parameters:
      targetRequest - The target request
      chain - The filter chain
      Returns:
      The publisher of the response