Browse Source

修复数据加密bug:当查询的列表为空时,解密方法报数组越界的异常

mayuanfei 2 years ago
parent
commit
f6d4e23bf6

+ 5 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/encrypt/MybatisDecryptInterceptor.java

@@ -60,8 +60,12 @@ public class MybatisDecryptInterceptor implements Interceptor {
             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;
             }

+ 5 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/encrypt/MybatisEncryptInterceptor.java

@@ -71,8 +71,12 @@ public class MybatisEncryptInterceptor implements Interceptor {
             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;
             }