【优化】数据脱敏支持 Spring el 表达式,支持根据权限控制脱敏

This commit is contained in:
YunaiV
2024-08-03 18:48:06 +08:00
parent 8c2b8ed894
commit 7ba3b12313
24 changed files with 81 additions and 87 deletions

View File

@ -4,9 +4,9 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.expression.BeanFactoryResolver;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.ParameterNameDiscoverer;
@ -93,17 +93,16 @@ public class SpringExpressionUtils {
/**
* 从 Bean 工厂,解析 EL 表达式的结果
*
* @param beanFactory Bean 工程
* @param expressionString EL 表达式
* @return 执行界面
*/
public static Object parseExpression(BeanFactory beanFactory, String expressionString) {
public static Object parseExpression(String expressionString) {
if (StrUtil.isBlank(expressionString)) {
return null;
}
Expression expression = EXPRESSION_PARSER.parseExpression(expressionString);
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(new BeanFactoryResolver(beanFactory));
context.setBeanResolver(new BeanFactoryResolver(SpringUtil.getApplicationContext()));
return expression.getValue(context);
}