提交 33e07355 authored 作者: liyinqiao's avatar liyinqiao

增加如果是集合或数组,需要判断内部层级是否是基本数据类型

上级 0b5b3ce0
...@@ -22,7 +22,7 @@ public class MapCryptHandler implements CryptHandler{ ...@@ -22,7 +22,7 @@ public class MapCryptHandler implements CryptHandler{
Object value = entry.getValue(); Object value = entry.getValue();
if(encryptKeyList.contains(key.toLowerCase())){ if(encryptKeyList.contains(key.toLowerCase())){
encryptParam.put(key,CryptHandlerFactory.getCryptHandler(value).encrypt(value,cryptProperties,mapid)); encryptParam.put(key,CryptHandlerFactory.getCryptHandler(value).encrypt(value,cryptProperties,mapid));
}else if(value != null && !isPrimitiveType(value)){ }else if(value != null && !isPrimitiveType(value,0)){
// liyinqiao Map 的 value 非是普通字符串时 需要对内部结构做加密 // liyinqiao Map 的 value 非是普通字符串时 需要对内部结构做加密
Object enCodeParam = value; Object enCodeParam = value;
try { try {
...@@ -44,7 +44,10 @@ public class MapCryptHandler implements CryptHandler{ ...@@ -44,7 +44,10 @@ public class MapCryptHandler implements CryptHandler{
* @version 1.0, 2024/3/29 * @version 1.0, 2024/3/29
* @description 判断是否数据基本数据类型 * @description 判断是否数据基本数据类型
*/ */
private static boolean isPrimitiveType(Object obj){ private static boolean isPrimitiveType(Object obj,int i){
if(i > 3){
return false;
}
if(obj instanceof String){ if(obj instanceof String){
return true; return true;
...@@ -58,6 +61,18 @@ public class MapCryptHandler implements CryptHandler{ ...@@ -58,6 +61,18 @@ public class MapCryptHandler implements CryptHandler{
if(obj instanceof java.sql.Date){ if(obj instanceof java.sql.Date){
return true; return true;
} }
// 如果是个集合 需要判断 内部结构
if(obj instanceof List && CollectionUtils.isNotEmpty((List)obj)){
Object temp = ((List<?>) obj).get(0);
return isPrimitiveType(temp,i+1);
}
if(obj.getClass().isArray() && ((Object[])obj).length > 0){
Object temp = ((Object[])obj)[0];
return isPrimitiveType(temp,i+1);
}
return false; return false;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论