疯狂的狮子Li
2023-09-12 eb9e4b5eef423eea29a233ac8aeb6b3fd1ef6709
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) {