From 4317a1560a303e5002e4f93006a2007e4e243858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 7 Mar 2023 23:49:11 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E5=8A=A0=E8=A7=A3?= =?UTF-8?q?=E5=AF=86=E6=8B=A6=E6=88=AA=E5=99=A8null=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../encrypt/interceptor/MybatisDecryptInterceptor.java | 10 +++++++++- .../encrypt/interceptor/MybatisEncryptInterceptor.java | 9 ++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisDecryptInterceptor.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisDecryptInterceptor.java index b86ae91d..ea94c1ed 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisDecryptInterceptor.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisDecryptInterceptor.java @@ -1,6 +1,7 @@ package com.ruoyi.common.encrypt.interceptor; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.encrypt.annotation.EncryptField; import com.ruoyi.common.encrypt.core.EncryptContext; @@ -55,13 +56,20 @@ public class MybatisDecryptInterceptor implements Interceptor { * @param sourceObject 待加密对象 */ private void decryptHandler(Object sourceObject) { + if (ObjectUtil.isNull(sourceObject)) { + return; + } if (sourceObject instanceof Map) { ((Map) sourceObject).values().forEach(this::decryptHandler); return; } if (sourceObject instanceof List) { + List sourceList = (List) sourceObject; + if(CollectionUtil.isEmpty(sourceList)) { + return; + } // 判断第一个元素是否含有注解。如果没有直接返回,提高效率 - Object firstItem = ((List) sourceObject).get(0); + Object firstItem = sourceList.get(0); if (CollectionUtil.isEmpty(encryptorManager.getFieldCache(firstItem.getClass()))) { return; } diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java index 105487c6..84bea455 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java @@ -66,13 +66,20 @@ public class MybatisEncryptInterceptor implements Interceptor { * @param sourceObject 待加密对象 */ private void encryptHandler(Object sourceObject) { + if (ObjectUtil.isNull(sourceObject)) { + return; + } if (sourceObject instanceof Map) { ((Map) sourceObject).values().forEach(this::encryptHandler); return; } if (sourceObject instanceof List) { + List sourceList = (List) sourceObject; + if(CollectionUtil.isEmpty(sourceList)) { + return; + } // 判断第一个元素是否含有注解。如果没有直接返回,提高效率 - Object firstItem = ((List) sourceObject).get(0); + Object firstItem = sourceList.get(0); if (CollectionUtil.isEmpty(encryptorManager.getFieldCache(firstItem.getClass()))) { return; }