perf:优化脱敏类
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
package com.tiesheng.core.config.desensitize;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ClassUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.serializer.ValueFilter;
|
||||||
|
import com.tiesheng.annotation.desensitize.Desensitize;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 脱敏过滤类
|
||||||
|
*
|
||||||
|
* @author hao
|
||||||
|
*/
|
||||||
|
public class DesensitizeValueFilter implements ValueFilter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object process(Object object, String name, Object value) {
|
||||||
|
if (ObjectUtil.isEmpty(value) || !(value instanceof String)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
Field field = ClassUtil.getDeclaredField(object.getClass(), name);
|
||||||
|
Desensitize desensitize = field.getAnnotation(Desensitize.class);
|
||||||
|
if (String.class != field.getType() || ObjectUtil.isEmpty(desensitize)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
String originVal = String.valueOf(value);
|
||||||
|
return StrUtil.hide(originVal, desensitize.prefix(),
|
||||||
|
StrUtil.length(originVal) - desensitize.suffix());
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
package com.tiesheng.core.config.desensitize;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import com.alibaba.fastjson.serializer.ValueFilter;
|
|
||||||
import com.tiesheng.annotation.desensitize.Desensitize;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
|
|
||||||
public class ValueDesensitizeFilter implements ValueFilter {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object process(Object object, String name, Object value) {
|
|
||||||
if (ObjectUtil.isEmpty(value) || !(value instanceof String)) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
Field field = object.getClass().getDeclaredField(name);
|
|
||||||
Desensitize desensitize = field.getAnnotation(Desensitize.class);
|
|
||||||
if (String.class != field.getType() || ObjectUtil.isEmpty(desensitize)) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
String originVal = String.valueOf(value);
|
|
||||||
return StrUtil.hide(originVal, desensitize.prefix(), StrUtil.length(originVal) - desensitize.suffix());
|
|
||||||
} catch (NoSuchFieldException ignored) {
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@ package com.tiesheng.core.config.json;
|
|||||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||||
import com.alibaba.fastjson.support.config.FastJsonConfig;
|
import com.alibaba.fastjson.support.config.FastJsonConfig;
|
||||||
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
|
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
|
||||||
import com.tiesheng.core.config.desensitize.ValueDesensitizeFilter;
|
import com.tiesheng.core.config.desensitize.DesensitizeValueFilter;
|
||||||
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
|
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
@@ -31,7 +31,7 @@ public class FastJsonMessageConverter {
|
|||||||
SerializerFeature.WriteNullStringAsEmpty,
|
SerializerFeature.WriteNullStringAsEmpty,
|
||||||
SerializerFeature.WriteEnumUsingName);
|
SerializerFeature.WriteEnumUsingName);
|
||||||
config.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
config.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
config.setSerializeFilters(new ValueDesensitizeFilter());
|
config.setSerializeFilters(new DesensitizeValueFilter());
|
||||||
|
|
||||||
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
|
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
|
||||||
fastConverter.setFastJsonConfig(config);
|
fastConverter.setFastJsonConfig(config);
|
||||||
|
|||||||
Reference in New Issue
Block a user