Class JwtClaimTenantIdResolver

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

public class JwtClaimTenantIdResolver extends Object implements TenantIdResolver

從 OAuth2 JWT 的 claims 中解析租戶 ID

適用於使用 Spring Security OAuth2 Resource Server 的場景, 此時 authentication.getPrincipal()Jwt 類型。

範例:

// JWT payload: {"sub": "user", "tenantId": "tenant-123", ...}
TenantIdResolver resolver = new JwtClaimTenantIdResolver("tenantId");
String tenantId = resolver.resolve(authentication); // "tenant-123"
  • Field Details

  • Constructor Details

    • JwtClaimTenantIdResolver

      public JwtClaimTenantIdResolver()
      使用預設 claim 名稱 "tenantId" 建構
    • JwtClaimTenantIdResolver

      public JwtClaimTenantIdResolver(String claimName)
      使用指定的 claim 名稱建構
      Parameters:
      claimName - JWT 中的租戶 ID claim 名稱
  • Method Details

    • resolve

      public String resolve(org.springframework.security.core.Authentication authentication)
      Description copied from interface: TenantIdResolver
      從認證資訊中解析租戶 ID
      Specified by:
      resolve in interface TenantIdResolver
      Parameters:
      authentication - Spring Security 認證物件,不為 null
      Returns:
      租戶 ID,若此 resolver 無法處理則返回 null