Commit 2aa208f44139270604724f2c505198829be1e2d8

Authored by gaibu
1 parent 6593ec42

feat: 脱敏组件代码规范更新

yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/DesensitizationHandlerFactory.java deleted
1 -package cn.iocoder.yudao.framework.desensitize.core.base;  
2 -  
3 -import cn.hutool.Hutool;  
4 -import cn.hutool.core.lang.Singleton;  
5 -import cn.hutool.core.util.ReflectUtil;  
6 -import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;  
7 -  
8 -import java.util.Map;  
9 -import java.util.concurrent.ConcurrentHashMap;  
10 -  
11 -/**  
12 - * 脱敏处理器 Holder  
13 - *  
14 - * @author gaibu  
15 - */  
16 -public class DesensitizationHandlerFactory {  
17 -  
18 - /**  
19 - * handler 缓存,默认初始化内置的处理器  
20 - */  
21 - private static final Map<Class<? extends DesensitizationHandler>, DesensitizationHandler> HANDLER_MAP = new ConcurrentHashMap<Class<? extends DesensitizationHandler>, DesensitizationHandler>();  
22 -  
23 - // TODO @唐:可以考虑,使用 hutool 提供的 Singleton.get()  
24 - public static DesensitizationHandler getDesensitizationHandler(Class<? extends DesensitizationHandler> clazz) {  
25 - DesensitizationHandler handler = HANDLER_MAP.get(clazz);  
26 - if (handler != null) {  
27 - return handler;  
28 - }  
29 - // 不存在,则进行创建  
30 - synchronized (DesensitizationHandlerFactory.class) {  
31 - handler = HANDLER_MAP.get(clazz);  
32 - // 双重校验锁  
33 - if (handler != null) {  
34 - return handler;  
35 - }  
36 - handler = ReflectUtil.newInstanceIfPossible(clazz);  
37 - HANDLER_MAP.put(clazz, handler);  
38 - }  
39 - return handler;  
40 - }  
41 -  
42 -}  
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java
1 package cn.iocoder.yudao.framework.desensitize.core.base.serializer; 1 package cn.iocoder.yudao.framework.desensitize.core.base.serializer;
2 2
3 import cn.hutool.core.annotation.AnnotationUtil; 3 import cn.hutool.core.annotation.AnnotationUtil;
  4 +import cn.hutool.core.lang.Singleton;
4 import cn.hutool.core.util.ArrayUtil; 5 import cn.hutool.core.util.ArrayUtil;
5 import cn.hutool.core.util.ReflectUtil; 6 import cn.hutool.core.util.ReflectUtil;
6 import cn.hutool.core.util.StrUtil; 7 import cn.hutool.core.util.StrUtil;
7 import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; 8 import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
8 import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; 9 import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
9 -import cn.iocoder.yudao.framework.desensitize.core.base.DesensitizationHandlerFactory;  
10 import com.fasterxml.jackson.core.JsonGenerator; 10 import com.fasterxml.jackson.core.JsonGenerator;
11 import com.fasterxml.jackson.databind.BeanProperty; 11 import com.fasterxml.jackson.databind.BeanProperty;
12 -import com.fasterxml.jackson.databind.JsonMappingException;  
13 import com.fasterxml.jackson.databind.JsonSerializer; 12 import com.fasterxml.jackson.databind.JsonSerializer;
14 import com.fasterxml.jackson.databind.SerializerProvider; 13 import com.fasterxml.jackson.databind.SerializerProvider;
15 import com.fasterxml.jackson.databind.ser.ContextualSerializer; 14 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
@@ -47,7 +46,7 @@ public class StringDesensitizeSerializer extends StdSerializer&lt;String&gt; implement @@ -47,7 +46,7 @@ public class StringDesensitizeSerializer extends StdSerializer&lt;String&gt; implement
47 } 46 }
48 // 创建一个 StringDesensitizeSerializer 对象,使用 DesensitizeBy 对应的处理器 47 // 创建一个 StringDesensitizeSerializer 对象,使用 DesensitizeBy 对应的处理器
49 StringDesensitizeSerializer serializer = new StringDesensitizeSerializer(); 48 StringDesensitizeSerializer serializer = new StringDesensitizeSerializer();
50 - serializer.setDesensitizationHandler(DesensitizationHandlerFactory.getDesensitizationHandler(annotation.handler())); 49 + serializer.setDesensitizationHandler(Singleton.get(annotation.handler()));
51 return serializer; 50 return serializer;
52 } 51 }
53 52
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/Email.java renamed to yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java
@@ -10,7 +10,6 @@ import java.lang.annotation.Retention; @@ -10,7 +10,6 @@ import java.lang.annotation.Retention;
10 import java.lang.annotation.RetentionPolicy; 10 import java.lang.annotation.RetentionPolicy;
11 import java.lang.annotation.Target; 11 import java.lang.annotation.Target;
12 12
13 -// TODO @唐:名字还是 Email=》EmailDesensitize 合适一点,避免和 Validator 的注解有点冲突  
14 /** 13 /**
15 * 邮箱脱敏注解 14 * 邮箱脱敏注解
16 * 15 *
@@ -21,7 +20,7 @@ import java.lang.annotation.Target; @@ -21,7 +20,7 @@ import java.lang.annotation.Target;
21 @Retention(RetentionPolicy.RUNTIME) 20 @Retention(RetentionPolicy.RUNTIME)
22 @JacksonAnnotationsInside 21 @JacksonAnnotationsInside
23 @DesensitizeBy(handler = EmailDesensitizationHandler.class) 22 @DesensitizeBy(handler = EmailDesensitizationHandler.class)
24 -public @interface Email { 23 +public @interface EmailDesensitize {
25 24
26 /** 25 /**
27 * 匹配的正则表达式 26 * 匹配的正则表达式
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java
1 package cn.iocoder.yudao.framework.desensitize.core.regex.handler; 1 package cn.iocoder.yudao.framework.desensitize.core.regex.handler;
2 2
3 -import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Email; 3 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize;
4 4
5 /** 5 /**
6 - * {@link Email} 的脱敏处理器 6 + * {@link EmailDesensitize} 的脱敏处理器
7 * 7 *
8 * @author gaibu 8 * @author gaibu
9 */ 9 */
10 -public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<Email> { 10 +public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<EmailDesensitize> {
11 11
12 @Override 12 @Override
13 - String getRegex(Email annotation) { 13 + String getRegex(EmailDesensitize annotation) {
14 return annotation.regex(); 14 return annotation.regex();
15 } 15 }
16 16
17 @Override 17 @Override
18 - String getReplacer(Email annotation) { 18 + String getReplacer(EmailDesensitize annotation) {
19 return annotation.replacer(); 19 return annotation.replacer();
20 } 20 }
21 21
yudao-framework/yudao-spring-boot-starter-desensitize/src/test/java/cn/iocoder/yudao/framework/desensitize/core/DesensitizeTest.java
1 package cn.iocoder.yudao.framework.desensitize.core; 1 package cn.iocoder.yudao.framework.desensitize.core;
2 2
3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4 -import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Email; 4 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize;
5 import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Regex; 5 import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Regex;
6 import cn.iocoder.yudao.framework.desensitize.core.annotation.Address; 6 import cn.iocoder.yudao.framework.desensitize.core.annotation.Address;
7 import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard; 7 import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard;
@@ -85,7 +85,7 @@ public class DesensitizeTest extends BaseMockitoUnitTest { @@ -85,7 +85,7 @@ public class DesensitizeTest extends BaseMockitoUnitTest {
85 private String slider2; 85 private String slider2;
86 @Slider(prefixKeep = 10) 86 @Slider(prefixKeep = 10)
87 private String slider3; 87 private String slider3;
88 - @Email 88 + @EmailDesensitize
89 private String email; 89 private String email;
90 @Regex(regex = "芋道源码", replacer = "*") 90 @Regex(regex = "芋道源码", replacer = "*")
91 private String regex; 91 private String regex;