Commit 2aa208f44139270604724f2c505198829be1e2d8
1 parent
6593ec42
feat: 脱敏组件代码规范更新
Showing
5 changed files
with
10 additions
and
54 deletions
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 | 1 | package cn.iocoder.yudao.framework.desensitize.core.base.serializer; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.annotation.AnnotationUtil; |
| 4 | +import cn.hutool.core.lang.Singleton; | |
| 4 | 5 | import cn.hutool.core.util.ArrayUtil; |
| 5 | 6 | import cn.hutool.core.util.ReflectUtil; |
| 6 | 7 | import cn.hutool.core.util.StrUtil; |
| 7 | 8 | import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy; |
| 8 | 9 | import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler; |
| 9 | -import cn.iocoder.yudao.framework.desensitize.core.base.DesensitizationHandlerFactory; | |
| 10 | 10 | import com.fasterxml.jackson.core.JsonGenerator; |
| 11 | 11 | import com.fasterxml.jackson.databind.BeanProperty; |
| 12 | -import com.fasterxml.jackson.databind.JsonMappingException; | |
| 13 | 12 | import com.fasterxml.jackson.databind.JsonSerializer; |
| 14 | 13 | import com.fasterxml.jackson.databind.SerializerProvider; |
| 15 | 14 | import com.fasterxml.jackson.databind.ser.ContextualSerializer; |
| ... | ... | @@ -47,7 +46,7 @@ public class StringDesensitizeSerializer extends StdSerializer<String> implement |
| 47 | 46 | } |
| 48 | 47 | // 创建一个 StringDesensitizeSerializer 对象,使用 DesensitizeBy 对应的处理器 |
| 49 | 48 | StringDesensitizeSerializer serializer = new StringDesensitizeSerializer(); |
| 50 | - serializer.setDesensitizationHandler(DesensitizationHandlerFactory.getDesensitizationHandler(annotation.handler())); | |
| 49 | + serializer.setDesensitizationHandler(Singleton.get(annotation.handler())); | |
| 51 | 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 | 10 | import java.lang.annotation.RetentionPolicy; |
| 11 | 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 | 20 | @Retention(RetentionPolicy.RUNTIME) |
| 22 | 21 | @JacksonAnnotationsInside |
| 23 | 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 | 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 | 8 | * @author gaibu |
| 9 | 9 | */ |
| 10 | -public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<Email> { | |
| 10 | +public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<EmailDesensitize> { | |
| 11 | 11 | |
| 12 | 12 | @Override |
| 13 | - String getRegex(Email annotation) { | |
| 13 | + String getRegex(EmailDesensitize annotation) { | |
| 14 | 14 | return annotation.regex(); |
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | @Override |
| 18 | - String getReplacer(Email annotation) { | |
| 18 | + String getReplacer(EmailDesensitize annotation) { | |
| 19 | 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 | 1 | package cn.iocoder.yudao.framework.desensitize.core; |
| 2 | 2 | |
| 3 | 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 | 5 | import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Regex; |
| 6 | 6 | import cn.iocoder.yudao.framework.desensitize.core.annotation.Address; |
| 7 | 7 | import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard; |
| ... | ... | @@ -85,7 +85,7 @@ public class DesensitizeTest extends BaseMockitoUnitTest { |
| 85 | 85 | private String slider2; |
| 86 | 86 | @Slider(prefixKeep = 10) |
| 87 | 87 | private String slider3; |
| 88 | ||
| 88 | + @EmailDesensitize | |
| 89 | 89 | private String email; |
| 90 | 90 | @Regex(regex = "芋道源码", replacer = "*") |
| 91 | 91 | private String regex; | ... | ... |