mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-14 02:55:07 +08:00
1. 升级 1.3.0-snapshot 版本
2.【修复】biz-data-permission 组件的缓存机制,导致部分 SQL 未进行数据过滤
This commit is contained in:
@ -369,6 +369,11 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
|
||||
if (!rule.getTableNames().contains(table.getName())) {
|
||||
continue;
|
||||
}
|
||||
// 如果有匹配的规则,说明可重写。
|
||||
// 为什么不是有 allExpression 非空才重写呢?在生成 column = value 过滤条件时,会因为 value 不存在,导致未重写。
|
||||
// 这样导致第一次无 value,被标记成无需重写;但是第二次有 value,此时会需要重写。
|
||||
ContextHolder.setRewrite(true);
|
||||
|
||||
// 单条规则的条件
|
||||
String tableName = MyBatisUtils.getTableName(table);
|
||||
Expression oneExpress = rule.getExpression(tableName, table.getAlias());
|
||||
@ -377,10 +382,6 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
|
||||
: new AndExpression(allExpression, oneExpress);
|
||||
}
|
||||
|
||||
// 如果条件非空,说明已经重写了
|
||||
if (allExpression != null) {
|
||||
ContextHolder.setRewrite(true);
|
||||
}
|
||||
return allExpression;
|
||||
}
|
||||
|
||||
@ -393,7 +394,7 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
|
||||
if (ContextHolder.getRewrite()) {
|
||||
return;
|
||||
}
|
||||
// 有重写,进行添加
|
||||
// 无重写,进行添加
|
||||
mappedStatementCache.addNoRewritable(ms, ContextHolder.getRules());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user