Prechádzať zdrojové kódy

fix 修复 加解密拦截器 同一对象多次处理问题

疯狂的狮子li 2 rokov pred
rodič
commit
a2d8ff9286

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

@@ -16,10 +16,7 @@ import org.apache.ibatis.plugin.*;
 
 import java.lang.reflect.Field;
 import java.sql.Statement;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 出参解密拦截器
@@ -60,7 +57,7 @@ public class MybatisDecryptInterceptor implements Interceptor {
             return;
         }
         if (sourceObject instanceof Map<?, ?>) {
-            ((Map<?, ?>) sourceObject).values().forEach(this::decryptHandler);
+            new HashSet<>(((Map<?, ?>) sourceObject).values()).forEach(this::decryptHandler);
             return;
         }
         if (sourceObject instanceof List<?>) {

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

@@ -19,10 +19,7 @@ import org.apache.ibatis.plugin.Signature;
 
 import java.lang.reflect.Field;
 import java.sql.PreparedStatement;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
+import java.util.*;
 
 /**
  * 入参加密拦截器
@@ -70,7 +67,7 @@ public class MybatisEncryptInterceptor implements Interceptor {
             return;
         }
         if (sourceObject instanceof Map<?, ?>) {
-            ((Map<?, ?>) sourceObject).values().forEach(this::encryptHandler);
+            new HashSet<>(((Map<?, ?>) sourceObject).values()).forEach(this::encryptHandler);
             return;
         }
         if (sourceObject instanceof List<?>) {