Class AbstractSubdomainTenantResolver

java.lang.Object
io.micronaut.multitenancy.tenantresolver.AbstractSubdomainTenantResolver
All Implemented Interfaces:
HttpRequestTenantResolver, TenantResolver
Direct Known Subclasses:
InternetDomainNameSubdomainTenantResolver, PublicSuffixListSubdomainTenantResolver, SubdomainTenantResolver

public abstract class AbstractSubdomainTenantResolver extends Object implements TenantResolver, HttpRequestTenantResolver
Abstract class for a tenant resolver that resolves the tenant from the Subdomain.
Since:
5.1.0
Author:
Sergio del Amo
  • Field Details

    • httpHostResolver

      protected io.micronaut.http.server.util.HttpHostResolver httpHostResolver
      Http Host resolver.
  • Constructor Details

    • AbstractSubdomainTenantResolver

      protected AbstractSubdomainTenantResolver(io.micronaut.http.server.util.HttpHostResolver httpHostResolver)
      Parameters:
      httpHostResolver - HTTP host resolver.
  • Method Details

    • resolveTenantId

      @NonNull public @NonNull String resolveTenantId()
      Description copied from interface: TenantResolver

      Resolves the current tenant identifier.

      In a Multi Tenant setup where a single database is being used amongst multiple tenants this would be the object that is used as the tenantId property for each domain class.

      Specified by:
      resolveTenantId in interface TenantResolver
      Returns:
      The tenant identifier
    • resolveTenantId

      @NonNull public @NonNull String resolveTenantId(@NonNull @NonNull io.micronaut.http.HttpRequest<?> request) throws TenantNotFoundException
      Description copied from interface: HttpRequestTenantResolver
      Resolves the current tenant identifier.
      Specified by:
      resolveTenantId in interface HttpRequestTenantResolver
      Parameters:
      request - The HTTP request
      Returns:
      The tenant identifier
      Throws:
      TenantNotFoundException - if tenant not found
    • resolveTenantIdentifier

      @NonNull @Deprecated(forRemoval=true, since="5.5.0") public @NonNull Serializable resolveTenantIdentifier()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: TenantResolver

      Resolves the current tenant identifier.

      In a Multi Tenant setup where a single database is being used amongst multiple tenants this would be the object that is used as the tenantId property for each domain class.

      Specified by:
      resolveTenantIdentifier in interface TenantResolver
      Returns:
      The tenant identifier
    • resolveTenantIdentifier

      @NonNull @Deprecated(forRemoval=true, since="5.5.0") public @NonNull Serializable resolveTenantIdentifier(@NonNull @NonNull io.micronaut.http.HttpRequest<?> request) throws TenantNotFoundException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: HttpRequestTenantResolver
      Resolves the current tenant identifier.
      Specified by:
      resolveTenantIdentifier in interface HttpRequestTenantResolver
      Parameters:
      request - The HTTP request
      Returns:
      The tenant identifier
      Throws:
      TenantNotFoundException - if tenant not found
    • resolveSubdomain

      @NonNull protected abstract @NonNull Serializable resolveSubdomain(@NonNull @NonNull String host)
      Parameters:
      host - Host
      Returns:
      The subdomain.