From 4ceb79afa35b2be369b8c84219524d687451974b Mon Sep 17 00:00:00 2001 From: MichelleChung <1242874891@qq.com> Date: 星期五, 29 十二月 2023 11:39:15 +0800 Subject: [PATCH] !467 新增 ThreadLocalHolder 整合 SaHolder,ThreadLocal * fix 修复 issue#I8RWB5 字段缺少问题 ; * add 新增 ThreadLocalHolder 替换 SaHolder ; --- ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java index 07c5675..498b4b8 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/EncryptorManager.java @@ -1,11 +1,12 @@ package org.dromara.common.encrypt.core; import cn.hutool.core.util.ReflectUtil; -import org.dromara.common.encrypt.annotation.EncryptField; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.encrypt.annotation.EncryptField; import java.lang.reflect.Field; import java.util.Arrays; +import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -35,8 +36,13 @@ */ public Set<Field> getFieldCache(Class<?> sourceClazz) { return fieldCache.computeIfAbsent(sourceClazz, clazz -> { - Field[] declaredFields = clazz.getDeclaredFields(); - Set<Field> fieldSet = Arrays.stream(declaredFields).filter(field -> + Set<Field> fieldSet = new HashSet<>(); + while (clazz != null) { + Field[] fields = clazz.getDeclaredFields(); + fieldSet.addAll(Arrays.asList(fields)); + clazz = clazz.getSuperclass(); + } + fieldSet = fieldSet.stream().filter(field -> field.isAnnotationPresent(EncryptField.class) && field.getType() == String.class) .collect(Collectors.toSet()); for (Field field : fieldSet) { -- Gitblit v1.9.3