Skip to content

Commit 3105865

Browse files
Merge pull request #9357 from SunJary/tenant
当需要租户隔离时才添加多租户插件
2 parents 04a26cd + 0859784 commit 3105865

1 file changed

Lines changed: 31 additions & 28 deletions

File tree

jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -93,40 +93,43 @@ public class MybatisPlusSaasConfig {
9393
public MybatisPlusInterceptor mybatisPlusInterceptor() {
9494
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
9595
// 先 add TenantLineInnerInterceptor 再 add PaginationInnerInterceptor
96-
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
97-
@Override
98-
public Expression getTenantId() {
99-
String tenantId = TenantContext.getTenant();
100-
//如果通过线程获取租户ID为空,则通过当前请求的request获取租户(shiro排除拦截器的请求会获取不到租户ID)
101-
if(oConvertUtils.isEmpty(tenantId)){
102-
try {
103-
tenantId = TokenUtils.getTenantIdByRequest(SpringContextUtils.getHttpServletRequest());
104-
} catch (Exception e) {
105-
//e.printStackTrace();
96+
// 条件注册租户拦截器:当需要租户隔离时才添加
97+
if (OPEN_SYSTEM_TENANT_CONTROL) {
98+
interceptor.addInnerInterceptor(new TenantLineInnerInterceptor(new TenantLineHandler() {
99+
@Override
100+
public Expression getTenantId() {
101+
String tenantId = TenantContext.getTenant();
102+
//如果通过线程获取租户ID为空,则通过当前请求的request获取租户(shiro排除拦截器的请求会获取不到租户ID)
103+
if (oConvertUtils.isEmpty(tenantId)) {
104+
try {
105+
tenantId = TokenUtils.getTenantIdByRequest(SpringContextUtils.getHttpServletRequest());
106+
} catch (Exception e) {
107+
//e.printStackTrace();
108+
}
106109
}
110+
if (oConvertUtils.isEmpty(tenantId)) {
111+
tenantId = "0";
112+
}
113+
return new LongValue(tenantId);
107114
}
108-
if(oConvertUtils.isEmpty(tenantId)){
109-
tenantId = "0";
110-
}
111-
return new LongValue(tenantId);
112-
}
113115

114-
@Override
115-
public String getTenantIdColumn(){
116-
return TenantConstant.TENANT_ID_TABLE;
117-
}
116+
@Override
117+
public String getTenantIdColumn() {
118+
return TenantConstant.TENANT_ID_TABLE;
119+
}
118120

119-
// 返回 true 表示不走租户逻辑
120-
@Override
121-
public boolean ignoreTable(String tableName) {
122-
for(String temp: TENANT_TABLE){
123-
if(temp.equalsIgnoreCase(tableName)){
124-
return false;
121+
// 返回 true 表示不走租户逻辑
122+
@Override
123+
public boolean ignoreTable(String tableName) {
124+
for (String temp : TENANT_TABLE) {
125+
if (temp.equalsIgnoreCase(tableName)) {
126+
return false;
127+
}
125128
}
129+
return true;
126130
}
127-
return true;
128-
}
129-
}));
131+
}));
132+
}
130133
//update-begin-author:zyf date:20220425 for:【VUEN-606】注入动态表名适配拦截器解决多表名问题
131134
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor());
132135
//update-end-author:zyf date:20220425 for:【VUEN-606】注入动态表名适配拦截器解决多表名问题

0 commit comments

Comments
 (0)