From eb9e4b5eef423eea29a233ac8aeb6b3fd1ef6709 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 12 九月 2023 10:32:07 +0800
Subject: [PATCH] update 优化 加密模块 支持父类统一使用加密注解(感谢 Tyler Ge)
---
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