Class CompositeTenantIdResolver

java.lang.Object
io.leandev.appfuse.security.tenant.resolver.CompositeTenantIdResolver
All Implemented Interfaces:
TenantIdResolver

public class CompositeTenantIdResolver extends Object implements TenantIdResolver

組合多個 TenantIdResolver 的複合解析器

依序嘗試每個 resolver,直到其中一個返回非 null 的租戶 ID。 這允許應用程式支援多種認證方式,每種方式有不同的租戶 ID 解析邏輯。

使用範例:

// 方式 1:使用建構子
TenantIdResolver resolver = new CompositeTenantIdResolver(
    new JwtClaimTenantIdResolver(),
    new JwtDetailsTenantIdResolver(),
    new UserDetailsTenantIdResolver()
);

// 方式 2:使用 Builder
TenantIdResolver resolver = CompositeTenantIdResolver.builder()
    .add(new JwtClaimTenantIdResolver())
    .add(new JwtDetailsTenantIdResolver())
    .add(new UserDetailsTenantIdResolver())
    .build();

// 方式 3:使用預設配置
TenantIdResolver resolver = CompositeTenantIdResolver.withDefaults();
  • Constructor Details

    • CompositeTenantIdResolver

      public CompositeTenantIdResolver(TenantIdResolver... resolvers)
      建構組合 resolver
      Parameters:
      resolvers - 要組合的 resolver 列表,依序嘗試
    • CompositeTenantIdResolver

      public CompositeTenantIdResolver(List<TenantIdResolver> resolvers)
      建構組合 resolver
      Parameters:
      resolvers - 要組合的 resolver 列表,依序嘗試
  • Method Details