|
|
|
|
@ -49,9 +49,8 @@ public class MybatisEncryptInterceptor implements Interceptor {
|
|
|
|
|
|
|
|
|
|
@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);
|
|
|
|
|
@ -65,19 +64,18 @@ public class MybatisEncryptInterceptor implements Interceptor {
|
|
|
|
|
*
|
|
|
|
|
* @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());
|
|
|
|
|
|