mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-26 17:21:53 +08:00
feat: 支持 vo 返回的脱敏
This commit is contained in:
parent
5c8e41b847
commit
cd9bcda935
@ -141,6 +141,11 @@
|
|||||||
<artifactId>yudao-spring-boot-starter-captcha</artifactId>
|
<artifactId>yudao-spring-boot-starter-captcha</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-biz-desensitize</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Spring 核心 -->
|
<!-- Spring 核心 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package cn.iocoder.yudao.framework.desensitize.serializer;
|
package cn.iocoder.yudao.framework.desensitize.serializer;
|
||||||
|
|
||||||
|
import cn.hutool.core.annotation.AnnotationUtil;
|
||||||
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
import cn.hutool.core.util.ReflectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.desensitize.annotation.Desensitize;
|
import cn.iocoder.yudao.framework.desensitize.annotation.Desensitize;
|
||||||
@ -22,13 +24,19 @@ import java.lang.reflect.Field;
|
|||||||
* 脱敏序列化器
|
* 脱敏序列化器
|
||||||
*/
|
*/
|
||||||
public class StringDesensitizeSerializer extends StdSerializer<String> implements ContextualSerializer {
|
public class StringDesensitizeSerializer extends StdSerializer<String> implements ContextualSerializer {
|
||||||
private final DesensitizationHandler desensitizationHandler;
|
private DesensitizationHandler desensitizationHandler;
|
||||||
|
|
||||||
protected StringDesensitizeSerializer(DesensitizationHandler desensitizationHandler) {
|
protected StringDesensitizeSerializer() {
|
||||||
super(String.class);
|
super(String.class);
|
||||||
this.desensitizationHandler = desensitizationHandler;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DesensitizationHandler getDesensitizationHandler() {
|
||||||
|
return desensitizationHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDesensitizationHandler(DesensitizationHandler desensitizationHandler) {
|
||||||
|
this.desensitizationHandler = desensitizationHandler;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
|
public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
|
||||||
@ -36,8 +44,9 @@ public class StringDesensitizeSerializer extends StdSerializer<String> implement
|
|||||||
if (annotation == null) {
|
if (annotation == null) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
StringDesensitizeSerializer serializer = new StringDesensitizeSerializer();
|
||||||
return new StringDesensitizeSerializer(DesensitizationHandlerHolder.getDesensitizationHandler(annotation.desensitizationHandler()));
|
serializer.setDesensitizationHandler(DesensitizationHandlerHolder.getDesensitizationHandler(annotation.desensitizationHandler()));
|
||||||
|
return serializer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -53,19 +62,23 @@ public class StringDesensitizeSerializer extends StdSerializer<String> implement
|
|||||||
Field field = ReflectUtil.getField(currentValueClass, currentName);
|
Field field = ReflectUtil.getField(currentValueClass, currentName);
|
||||||
|
|
||||||
// 滑动处理器
|
// 滑动处理器
|
||||||
SliderDesensitize sliderDesensitize = field.getAnnotation(SliderDesensitize.class);
|
SliderDesensitize sliderDesensitize = ArrayUtil.firstNonNull(AnnotationUtil.getCombinationAnnotations(field, SliderDesensitize.class));
|
||||||
if (sliderDesensitize != null) {
|
if (sliderDesensitize != null) {
|
||||||
value = this.desensitizationHandler.desensitize(value, sliderDesensitize.prefixKeep(), sliderDesensitize.suffixKeep(), sliderDesensitize.replacer());
|
value = this.desensitizationHandler.desensitize(value, sliderDesensitize.prefixKeep(), sliderDesensitize.suffixKeep(), sliderDesensitize.replacer());
|
||||||
|
gen.writeString(value);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 正则处理器
|
// 正则处理器
|
||||||
RegexDesensitize regexDesensitize = field.getAnnotation(RegexDesensitize.class);
|
RegexDesensitize regexDesensitize = ArrayUtil.firstNonNull(AnnotationUtil.getCombinationAnnotations(field, RegexDesensitize.class));
|
||||||
if (regexDesensitize != null) {
|
if (regexDesensitize != null) {
|
||||||
value = this.desensitizationHandler.desensitize(value, regexDesensitize.regex(), regexDesensitize.replacer());
|
value = this.desensitizationHandler.desensitize(value, regexDesensitize.regex(), regexDesensitize.replacer());
|
||||||
|
gen.writeString(value);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自定义处理器
|
// 自定义处理器
|
||||||
Desensitize desensitize = field.getAnnotation(Desensitize.class);
|
Desensitize desensitize = ArrayUtil.firstNonNull(AnnotationUtil.getCombinationAnnotations(field, Desensitize.class));
|
||||||
if (desensitize != null) {
|
if (desensitize != null) {
|
||||||
value = this.desensitizationHandler.desensitize(value);
|
value = this.desensitizationHandler.desensitize(value);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user