From ae34211d825cb4302e5789bdb6ed412db47c44a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=5F=E8=80=81=E9=A9=AC=5F?= Date: Wed, 17 Jan 2024 08:53:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=BE=97=E7=B1=BB=E7=9A=84=E5=8A=A0?= =?UTF-8?q?=E5=AF=86=E5=AD=97=E6=AE=B5=E9=9B=86=E5=90=88=E6=97=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=88=A4=E6=96=ADclazz=E5=A6=82=E6=9E=9C=E6=98=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3,=E5=86=85=E9=83=A8=E7=B1=BB,=E5=8C=BF?= =?UTF-8?q?=E5=90=8D=E7=B1=BB=E5=B0=B1=E7=9B=B4=E6=8E=A5=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../encrypt/config/EncryptorAutoConfiguration.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java index 8fbb786b5..0f3aee97d 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/config/EncryptorAutoConfiguration.java @@ -63,9 +63,9 @@ public class EncryptorAutoConfiguration { for (org.springframework.core.io.Resource resource : resources) { ClassMetadata classMetadata = new CachingMetadataReaderFactory().getMetadataReader(resource).getClassMetadata(); Class clazz = Resources.classForName(classMetadata.getClassName()); - Set safeFieldSetFromClazz = getSafeFieldSetFromClazz(clazz); - if(CollectionUtil.isNotEmpty(safeFieldSetFromClazz)) { - fieldCache.put(clazz, safeFieldSetFromClazz); + Set encryptFieldSet = getEncryptFieldSetFromClazz(clazz); + if(CollectionUtil.isNotEmpty(encryptFieldSet)) { + fieldCache.put(clazz, encryptFieldSet); } } } @@ -76,8 +76,12 @@ public class EncryptorAutoConfiguration { } // 获得一个类的加密字段集合 - private Set getSafeFieldSetFromClazz(Class clazz) { + private Set getEncryptFieldSetFromClazz(Class clazz) { Set fieldSet = new HashSet<>(); + // 判断clazz如果是接口,内部类,匿名类就直接返回 + if (clazz.isInterface() || clazz.isMemberClass() || clazz.isAnonymousClass()) { + return fieldSet; + } while (clazz != null) { Field[] fields = clazz.getDeclaredFields(); fieldSet.addAll(Arrays.asList(fields));