| | |
| | | package org.dromara.common.encrypt.interceptor; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.convert.Convert; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | } |
| | | // 判断第一个元素是否含有注解。如果没有直接返回,提高效率 |
| | | Object firstItem = list.get(0); |
| | | if (ObjectUtil.isNull(firstItem) && CollUtil.isEmpty(encryptorManager.getFieldCache(firstItem.getClass()))) { |
| | | if (ObjectUtil.isNull(firstItem) || CollUtil.isEmpty(encryptorManager.getFieldCache(firstItem.getClass()))) { |
| | | return; |
| | | } |
| | | list.forEach(this::encryptHandler); |
| | | return; |
| | | } |
| | | // 不在缓存中的类,就是没有加密注解的类(当然也有可能是typeAliasesPackage写错) |
| | | Set<Field> fields = encryptorManager.getFieldCache(sourceObject.getClass()); |
| | | if(ObjectUtil.isNull(fields)){ |
| | | return; |
| | | } |
| | | try { |
| | | for (Field field : fields) { |
| | | field.set(sourceObject, this.encryptField(String.valueOf(field.get(sourceObject)), field)); |
| | | field.set(sourceObject, this.encryptField(Convert.toStr(field.get(sourceObject)), field)); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("处理加密字段时出错", e); |