Class JwtDetailsTenantIdResolver
java.lang.Object
io.leandev.appfuse.security.tenant.resolver.JwtDetailsTenantIdResolver
- All Implemented Interfaces:
TenantIdResolver
從 Authentication details 中的 JWT Claims 解析租戶 ID
適用於使用 LocalJwtAuthenticationProvider
的場景,此時 JWT claims 存放在 authentication.getDetails() 中。
LocalJwtAuthenticationProvider 在建立認證時,會將 claims 設定到 details:
authenticatedToken.setDetails(claims);
範例:
// authentication.getDetails() 是 Claims,包含 tenantId
TenantIdResolver resolver = new JwtDetailsTenantIdResolver("tenantId");
String tenantId = resolver.resolve(authentication); // "tenant-123"
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescription使用預設 claim 名稱 "tenantId" 建構JwtDetailsTenantIdResolver(String claimName) 使用指定的 claim 名稱建構 -
Method Summary
-
Field Details
-
DEFAULT_CLAIM_NAME
-
-
Constructor Details
-
JwtDetailsTenantIdResolver
public JwtDetailsTenantIdResolver()使用預設 claim 名稱 "tenantId" 建構 -
JwtDetailsTenantIdResolver
使用指定的 claim 名稱建構- Parameters:
claimName- JWT 中的租戶 ID claim 名稱
-
-
Method Details
-
resolve
Description copied from interface:TenantIdResolver從認證資訊中解析租戶 ID- Specified by:
resolvein interfaceTenantIdResolver- Parameters:
authentication- Spring Security 認證物件,不為 null- Returns:
- 租戶 ID,若此 resolver 無法處理則返回 null
-