| | |
| | | |
| | | @Override |
| | | public Object plugin(Object target) { |
| | | if (target instanceof ParameterHandler) { |
| | | if (target instanceof ParameterHandler parameterHandler) { |
| | | // 进行加密操作 |
| | | ParameterHandler parameterHandler = (ParameterHandler) target; |
| | | Object parameterObject = parameterHandler.getParameterObject(); |
| | | if (ObjectUtil.isNotNull(parameterObject) && !(parameterObject instanceof String)) { |
| | | this.encryptHandler(parameterObject); |
| | |
| | | * |
| | | * @param sourceObject 待加密对象 |
| | | */ |
| | | @SuppressWarnings("unchecked cast") |
| | | private void encryptHandler(Object sourceObject) { |
| | | if (sourceObject instanceof Map) { |
| | | ((Map<?, Object>) sourceObject).values().forEach(this::encryptHandler); |
| | | if (sourceObject instanceof Map<?, ?> map) { |
| | | map.values().forEach(this::encryptHandler); |
| | | return; |
| | | } |
| | | if (sourceObject instanceof List) { |
| | | if (sourceObject instanceof List<?> list) { |
| | | // 判断第一个元素是否含有注解。如果没有直接返回,提高效率 |
| | | Object firstItem = ((List<?>) sourceObject).get(0); |
| | | Object firstItem = list.get(0); |
| | | if (CollectionUtil.isEmpty(encryptorManager.getFieldCache(firstItem.getClass()))) { |
| | | return; |
| | | } |
| | | ((List<?>) sourceObject).forEach(this::encryptHandler); |
| | | list.forEach(this::encryptHandler); |
| | | return; |
| | | } |
| | | Set<Field> fields = encryptorManager.getFieldCache(sourceObject.getClass()); |