diff --git a/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/util/TenantContextHolder.java b/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/util/TenantContextHolder.java index 93ca321e..72ad129b 100644 --- a/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/util/TenantContextHolder.java +++ b/kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/util/TenantContextHolder.java @@ -29,12 +29,17 @@ public class TenantContextHolder { } public String getTenant() { - String tenantIds = ObjectUtil.isNotEmpty(getUser()) ? getUser().getTenantId() : null; + String tenantIds = ObjectUtil.isNotEmpty(getUser()) ? getUser().getTenantId() : clearTenant(); return StrUtil.isNotBlank(contextHolder.get()) ? contextHolder.get() : tenantIds; } - public void clearTenant() { + /** + * 校验用户多租户是否为空,为空说明当前用户未登录,需要清除当前线程多租户数据 + * 不收的销毁,会出现 ThreadLocal 内存泄漏的问题 + */ + public String clearTenant() { contextHolder.remove(); + return null; } /**