Browse Source

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

gaibu 2 years ago
parent
commit
7b3fca2844
38 changed files with 390 additions and 209 deletions
  1. 1 1
      yudao-dependencies/pom.xml
  2. 1 1
      yudao-framework/pom.xml
  3. 0 27
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java
  4. 0 11
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java
  5. 0 10
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java
  6. 0 10
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java
  7. 0 14
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java
  8. 0 10
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java
  9. 0 10
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java
  10. 0 10
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java
  11. 0 11
      yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PhoneNumberDesensitization.java
  12. 2 10
      yudao-framework/yudao-spring-boot-starter-desensitize/pom.xml
  13. 5 10
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/DesensitizationHandlerFactory.java
  14. 8 9
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/annotation/DesensitizeBy.java
  15. 3 3
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/handler/DesensitizationHandler.java
  16. 28 23
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java
  17. 6 3
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java
  18. 5 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java
  19. 37 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java
  20. 11 3
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java
  21. 12 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java
  22. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/BankCard.java
  23. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/CarLicense.java
  24. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/ChineseName.java
  25. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/FixedPhone.java
  26. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/IdCard.java
  27. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Password.java
  28. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/PhoneNumber.java
  29. 4 2
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Slider.java
  30. 36 13
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AbstractDesensitizationHandler.java
  31. 27 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java
  32. 25 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java
  33. 25 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java
  34. 25 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java
  35. 25 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java
  36. 25 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java
  37. 25 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java
  38. 26 0
      yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PhoneNumberDesensitization.java

+ 1 - 1
yudao-dependencies/pom.xml

@@ -143,7 +143,7 @@
             </dependency>
             <dependency>
                 <groupId>cn.iocoder.boot</groupId>
-                <artifactId>yudao-spring-boot-starter-biz-desensitize</artifactId>
+                <artifactId>yudao-spring-boot-starter-desensitize</artifactId>
                 <version>${revision}</version>
             </dependency>
 

+ 1 - 1
yudao-framework/pom.xml

@@ -41,7 +41,7 @@
         <module>yudao-spring-boot-starter-flowable</module>
         <module>yudao-spring-boot-starter-captcha</module>
         <module>yudao-spring-boot-starter-websocket</module>
-        <module>yudao-spring-boot-starter-biz-desensitize</module>
+        <module>yudao-spring-boot-starter-desensitize</module>
     </modules>
 
     <artifactId>yudao-framework</artifactId>

+ 0 - 27
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java

@@ -1,27 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.regex.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
-
-import java.lang.annotation.Annotation;
-
-public abstract class AbstractRegexDesensitizationHandler<T extends Annotation> implements DesensitizationHandler<T> {
-
-    @Override
-    public String desensitize(String origin, T anno) {
-        Object[] args = getArgs(anno);
-        String regex = (String) args[0];
-        String replacer = (String) args[1];
-
-        return origin.replaceAll(regex, replacer);
-    }
-
-    // TODO @城:是不是抽象两个方法,一个拿 regex;一个拿 replacer
-
-    /**
-     * 获取注解的参数
-     *
-     * @param anno 注解信息
-     * @return 注解的参数
-     */
-    abstract Object[] getArgs(T anno);
-}

+ 0 - 11
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java

@@ -1,11 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard;
-
-public class BankCardDesensitization extends AbstractDesensitizationHandler<BankCard> {
-
-    @Override
-    Object[] getArgs(BankCard anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java

@@ -1,10 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.CarLicense;
-
-public class CarLicenseDesensitization  extends AbstractDesensitizationHandler<CarLicense> {
-    @Override
-    Object[] getArgs(CarLicense anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java

@@ -1,10 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.ChineseName;
-
-public class ChineseNameDesensitization extends AbstractDesensitizationHandler<ChineseName> {
-    @Override
-    Object[] getArgs(ChineseName anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 14
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java

@@ -1,14 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Slider;
-
-/**
- * 滑动脱敏处理器
- */
-public class DefaultDesensitizationHandler extends AbstractDesensitizationHandler<Slider> {
-
-    @Override
-    Object[] getArgs(Slider anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java

@@ -1,10 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.FixedPhone;
-
-public class FixedPhoneDesensitization extends AbstractDesensitizationHandler<FixedPhone> {
-    @Override
-    Object[] getArgs(FixedPhone anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java

@@ -1,10 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.IdCard;
-
-public class IdCardDesensitization  extends AbstractDesensitizationHandler<IdCard> {
-    @Override
-    Object[] getArgs(IdCard anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java

@@ -1,10 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Password;
-
-public class PasswordDesensitization extends AbstractDesensitizationHandler<Password> {
-    @Override
-    Object[] getArgs(Password anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 0 - 11
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PhoneNumberDesensitization.java

@@ -1,11 +0,0 @@
-package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
-
-import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.PhoneNumber;
-
-public class PhoneNumberDesensitization extends AbstractDesensitizationHandler<PhoneNumber> {
-
-    @Override
-    Object[] getArgs(PhoneNumber anno) {
-        return new Object[]{anno.prefixKeep(), anno.suffixKeep(), anno.replacer()};
-    }
-}

+ 2 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/pom.xml → yudao-framework/yudao-spring-boot-starter-desensitize/pom.xml

@@ -9,16 +9,8 @@
         <version>${revision}</version>
     </parent>
 
-    <!-- TODO 城:yudao-spring-boot-starter-biz-desensitize =》yudao-spring-boot-starter-desensitize,不属于业务哈 -->
-    <artifactId>yudao-spring-boot-starter-biz-desensitize</artifactId>
-    <!-- TODO 城:这个组件的说明; -->
-
-    <!-- TODO 城:这里去掉哈 -->
-    <properties>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
+    <artifactId>yudao-spring-boot-starter-desensitize</artifactId>
+    <description>脱敏组件</description>
 
     <dependencies>
         <dependency>

+ 5 - 10
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/DesensitizationHandlerHolder.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/DesensitizationHandlerFactory.java

@@ -2,33 +2,28 @@ package cn.iocoder.yudao.framework.desensitize.core.base;
 
 import cn.hutool.core.util.ReflectUtil;
 import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
-import cn.iocoder.yudao.framework.desensitize.core.regex.handler.DefaultRegexDesensitizationHandler;
-import cn.iocoder.yudao.framework.desensitize.core.slider.handler.DefaultDesensitizationHandler;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-// TODO @城:DesensitizationHandlerHolder =》 DesensitizationHandlerFactory? Holder 没有太多工厂的味道哈
 /**
  * 脱敏处理器 Holder
+ *
+ * @author gaibu
  */
-public class DesensitizationHandlerHolder {
+public class DesensitizationHandlerFactory {
 
     /**
      * handler 缓存,默认初始化内置的处理器
      */
-    private static final Map<Class<? extends DesensitizationHandler>, DesensitizationHandler> HANDLER_MAP = new ConcurrentHashMap<>() {{
-        // TODO @城:这 2 个,是不是不用呀?需要的时候初始化
-        put(DefaultRegexDesensitizationHandler.class, new DefaultRegexDesensitizationHandler());
-        put(DefaultDesensitizationHandler.class, new DefaultDesensitizationHandler());
-    }};
+    private static final Map<Class<? extends DesensitizationHandler>, DesensitizationHandler> HANDLER_MAP = new ConcurrentHashMap<Class<? extends DesensitizationHandler>, DesensitizationHandler>();
 
     public static DesensitizationHandler getDesensitizationHandler(Class<? extends DesensitizationHandler> clazz) {
         DesensitizationHandler handler = HANDLER_MAP.get(clazz);
         if (handler != null) {
             return handler;
         }
-        synchronized (DesensitizationHandlerHolder.class) {
+        synchronized (DesensitizationHandlerFactory.class) {
             handler = HANDLER_MAP.get(clazz);
             // 双重校验锁
             if (handler != null) {

+ 8 - 9
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/annotation/Desensitize.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/annotation/DesensitizeBy.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.framework.desensitize.core.base.annotation;
 
 import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
-import cn.iocoder.yudao.framework.desensitize.serializer.StringDesensitizeSerializer;
+import cn.iocoder.yudao.framework.desensitize.core.base.serializer.StringDesensitizeSerializer;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
@@ -11,21 +11,20 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-// TODO @城:每个接口上,author 写下哈。
-// TODO @城:Desensitize = 》DesensitizeBy
-// TODO @城:Desensitize 类注释,方便读者阅读理解
 /**
- * Desensitize 顶级脱敏注解
+ * 顶级脱敏注解,自定义注解需要使用此注解。
+ *
+ * @author gaibu
  */
 @Documented
 @Target(ElementType.ANNOTATION_TYPE)
 @Retention(RetentionPolicy.RUNTIME)
-@JacksonAnnotationsInside // TODO @城:这个的作用,也可以写下
-@JsonSerialize(using = StringDesensitizeSerializer.class) // TODO @城:这个的作用,也可以写下
-public @interface Desensitize {
+@JacksonAnnotationsInside // 此注解是其他所有 jackson 注解的元注解,打上了此注解的注解表明是 jackson 注解的一部分
+@JsonSerialize(using = StringDesensitizeSerializer.class) // 指定序列化器
+public @interface DesensitizeBy {
 
     /**
      * 脱敏处理器
      */
-    Class<? extends DesensitizationHandler> desensitizationBy(); // TODO @城:desensitizationBy -> handler
+    Class<? extends DesensitizationHandler> handler();
 }

+ 3 - 3
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/handler/DesensitizationHandler.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/handler/DesensitizationHandler.java

@@ -10,10 +10,10 @@ public interface DesensitizationHandler<T extends Annotation> {
     /**
      * 脱敏
      *
-     * @param origin 原始字符串
-     * @param anno   注解信息 // TODO 不要这样的缩写哈,anno -> annotation
+     * @param origin     原始字符串
+     * @param annotation 注解信息
      * @return 脱敏后的字符串
      */
-    String desensitize(String origin, T anno);
+    String desensitize(String origin, T annotation);
 
 }

+ 28 - 23
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/serializer/StringDesensitizeSerializer.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/base/serializer/StringDesensitizeSerializer.java

@@ -1,12 +1,12 @@
-package cn.iocoder.yudao.framework.desensitize.serializer;
+package cn.iocoder.yudao.framework.desensitize.core.base.serializer;
 
 import cn.hutool.core.annotation.AnnotationUtil;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.ReflectUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
-import cn.iocoder.yudao.framework.desensitize.core.base.DesensitizationHandlerHolder;
+import cn.iocoder.yudao.framework.desensitize.core.base.DesensitizationHandlerFactory;
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.databind.BeanProperty;
 import com.fasterxml.jackson.databind.JsonMappingException;
@@ -14,40 +14,36 @@ import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.io.IOException;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 
-// TODO @城:挪到 base/serializer 包下
 /**
  * 脱敏序列化器
+ *
+ * @author gaibu
  */
 public class StringDesensitizeSerializer extends StdSerializer<String> implements ContextualSerializer {
 
+    @Getter
+    @Setter
     private DesensitizationHandler desensitizationHandler;
 
     protected StringDesensitizeSerializer() {
         super(String.class);
     }
 
-    // TODO @城:get 和 set 方法是必须的么?如果是的话,可以换成 lombok 注解哈,简洁一点~
-    public DesensitizationHandler getDesensitizationHandler() {
-        return desensitizationHandler;
-    }
-
-    public void setDesensitizationHandler(DesensitizationHandler desensitizationHandler) {
-        this.desensitizationHandler = desensitizationHandler;
-    }
-
     @Override
     public JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException {
-        Desensitize annotation = beanProperty.getAnnotation(Desensitize.class);
+        DesensitizeBy annotation = beanProperty.getAnnotation(DesensitizeBy.class);
         if (annotation == null) {
             return this;
         }
         StringDesensitizeSerializer serializer = new StringDesensitizeSerializer();
-        serializer.setDesensitizationHandler(DesensitizationHandlerHolder.getDesensitizationHandler(annotation.desensitizationBy()));
+        serializer.setDesensitizationHandler(DesensitizationHandlerFactory.getDesensitizationHandler(annotation.handler()));
         return serializer;
     }
 
@@ -57,21 +53,17 @@ public class StringDesensitizeSerializer extends StdSerializer<String> implement
             gen.writeNull();
             return;
         }
-
-        // TODO @城:抽个 private getField 方法。让这个方法的逻辑主干,更清晰
-        String currentName = gen.getOutputContext().getCurrentName();
-        Object currentValue = gen.getCurrentValue();
-        Class<?> currentValueClass = currentValue.getClass();
-        Field field = ReflectUtil.getField(currentValueClass, currentName);
+        // 获取序列化字段
+        Field field = getField(gen);
 
         // 自定义处理器
-        Desensitize[] annotations = AnnotationUtil.getCombinationAnnotations(field, Desensitize.class);
+        DesensitizeBy[] annotations = AnnotationUtil.getCombinationAnnotations(field, DesensitizeBy.class);
         if (ArrayUtil.isEmpty(annotations)) {
             gen.writeString(value);
             return;
         }
         for (Annotation annotation : field.getAnnotations()) {
-            if (AnnotationUtil.hasAnnotation(annotation.annotationType(), Desensitize.class)) {
+            if (AnnotationUtil.hasAnnotation(annotation.annotationType(), DesensitizeBy.class)) {
                 value = this.desensitizationHandler.desensitize(value, annotation);
                 gen.writeString(value);
                 return;
@@ -80,4 +72,17 @@ public class StringDesensitizeSerializer extends StdSerializer<String> implement
         gen.writeString(value);
     }
 
+    /**
+     * 获取字段
+     *
+     * @param gen JsonGenerator
+     * @return 字段
+     */
+    private Field getField(JsonGenerator gen) {
+        String currentName = gen.getOutputContext().getCurrentName();
+        Object currentValue = gen.getCurrentValue();
+        Class<?> currentValueClass = currentValue.getClass();
+        return ReflectUtil.getField(currentValueClass, currentName);
+    }
+
 }

+ 6 - 3
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.regex.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.regex.handler.EmailDesensitizationHandler;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,17 +12,20 @@ import java.lang.annotation.Target;
 
 /**
  * 邮箱
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = EmailDesensitizationHandler.class)
+@DesensitizeBy(handler = EmailDesensitizationHandler.class)
 public @interface EmailDesensitize {
+
     /**
      * 匹配的正则表达式
      */
-    String regex() default  "(^.)[^@]*(@.*$)";
+    String regex() default "(^.)[^@]*(@.*$)";
 
     /**
      * 替换规则,邮箱;比如:example@gmail.com脱敏之后为e****@gmail.com

+ 5 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.regex.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.regex.handler.DefaultRegexDesensitizationHandler;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,13 +12,16 @@ import java.lang.annotation.Target;
 
 /**
  * 正则脱敏注解
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = DefaultRegexDesensitizationHandler.class)
+@DesensitizeBy(handler = DefaultRegexDesensitizationHandler.class)
 public @interface RegexDesensitize {
+
     /**
      * 匹配的正则表达式(默认匹配所有)
      */

+ 37 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/AbstractRegexDesensitizationHandler.java

@@ -0,0 +1,37 @@
+package cn.iocoder.yudao.framework.desensitize.core.regex.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * 正则表达式脱敏处理器抽象类,已实现通用的方法
+ *
+ * @author gaibu
+ */
+public abstract class AbstractRegexDesensitizationHandler<T extends Annotation> implements DesensitizationHandler<T> {
+
+    @Override
+    public String desensitize(String origin, T annotation) {
+        String regex = getRegex(annotation);
+        String replacer = getReplacer(annotation);
+
+        return origin.replaceAll(regex, replacer);
+    }
+
+    /**
+     * 获取注解上的 regex 参数
+     *
+     * @param annotation 注解信息
+     * @return 正则表达式
+     */
+    abstract String getRegex(T annotation);
+
+    /**
+     * 获取注解上的 replacer 参数
+     *
+     * @param annotation 注解信息
+     * @return 待替换的字符串
+     */
+    abstract String getReplacer(T annotation);
+}

+ 11 - 3
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.java

@@ -3,12 +3,20 @@ package cn.iocoder.yudao.framework.desensitize.core.regex.handler;
 import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.RegexDesensitize;
 
 /**
- * 正则脱敏处理器
+ * 默认正则脱敏处理器
+ *
+ * @author gaibu
  */
 public class DefaultRegexDesensitizationHandler extends AbstractRegexDesensitizationHandler<RegexDesensitize> {
 
+
+    @Override
+    String getRegex(RegexDesensitize annotation) {
+        return annotation.regex();
+    }
+
     @Override
-    Object[] getArgs(RegexDesensitize anno) {
-        return new Object[]{anno.regex(), anno.replacer()};
+    String getReplacer(RegexDesensitize annotation) {
+        return annotation.replacer();
     }
 }

+ 12 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/EmailDesensitizationHandler.java

@@ -2,10 +2,20 @@ package cn.iocoder.yudao.framework.desensitize.core.regex.handler;
 
 import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.EmailDesensitize;
 
+/**
+ * 邮箱脱敏处理器
+ *
+ * @author gaibu
+ */
 public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<EmailDesensitize> {
 
     @Override
-    Object[] getArgs(EmailDesensitize anno) {
-        return new Object[]{anno.regex(), anno.replacer()};
+    String getRegex(EmailDesensitize annotation) {
+        return annotation.regex();
+    }
+
+    @Override
+    String getReplacer(EmailDesensitize annotation) {
+        return annotation.replacer();
     }
 }

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/BankCard.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/BankCard.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.BankCardDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 银行卡号
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = BankCardDesensitization.class)
+@DesensitizeBy(handler = BankCardDesensitization.class)
 public @interface BankCard {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/CarLicense.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/CarLicense.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.CarLicenseDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 车牌号
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = CarLicenseDesensitization.class)
+@DesensitizeBy(handler = CarLicenseDesensitization.class)
 public @interface CarLicense {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/ChineseName.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/ChineseName.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.ChineseNameDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 中文名
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = ChineseNameDesensitization.class)
+@DesensitizeBy(handler = ChineseNameDesensitization.class)
 public @interface ChineseName {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/FixedPhone.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/FixedPhone.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.FixedPhoneDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 固定电话
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = FixedPhoneDesensitization.class)
+@DesensitizeBy(handler = FixedPhoneDesensitization.class)
 public @interface FixedPhone {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/IdCard.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/IdCard.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.IdCardDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 身份证
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = IdCardDesensitization.class)
+@DesensitizeBy(handler = IdCardDesensitization.class)
 public @interface IdCard {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Password.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Password.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.PasswordDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 密码
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = PasswordDesensitization.class)
+@DesensitizeBy(handler = PasswordDesensitization.class)
 public @interface Password {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/PhoneNumber.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/PhoneNumber.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.PhoneNumberDesensitization;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 手机号
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = PhoneNumberDesensitization.class)
+@DesensitizeBy(handler = PhoneNumberDesensitization.class)
 public @interface PhoneNumber {
 
     /**

+ 4 - 2
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Slider.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Slider.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
 
-import cn.iocoder.yudao.framework.desensitize.core.base.annotation.Desensitize;
+import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
 import cn.iocoder.yudao.framework.desensitize.core.slider.handler.DefaultDesensitizationHandler;
 import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
 
@@ -12,12 +12,14 @@ import java.lang.annotation.Target;
 
 /**
  * 滑动脱敏注解
+ *
+ * @author gaibu
  */
 @Documented
 @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
 @Retention(RetentionPolicy.RUNTIME)
 @JacksonAnnotationsInside
-@Desensitize(desensitizationBy = DefaultDesensitizationHandler.class)
+@DesensitizeBy(handler = DefaultDesensitizationHandler.class)
 public @interface Slider {
 
     /**

+ 36 - 13
yudao-framework/yudao-spring-boot-starter-biz-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AbstractDesensitizationHandler.java → yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AbstractDesensitizationHandler.java

@@ -4,14 +4,18 @@ import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationH
 
 import java.lang.annotation.Annotation;
 
+/**
+ * 滑动脱敏处理器抽象类,已实现通用的方法
+ *
+ * @author gaibu
+ */
 public abstract class AbstractDesensitizationHandler<T extends Annotation> implements DesensitizationHandler<T> {
 
     @Override
-    public String desensitize(String origin, T anno) {
-        Object[] args = getArgs(anno);
-        int prefixKeep = (Integer) args[0];
-        int suffixKeep = (Integer) args[1];
-        String replacer = (String) args[2];
+    public String desensitize(String origin, T annotation) {
+        int prefixKeep = getPrefixKeep(annotation);
+        int suffixKeep = getSuffixKeep(annotation);
+        String replacer = getReplacer(annotation);
         int length = origin.length();
 
         // 情况一:原始字符串长度小于等于保留长度,则原始字符串全部替换
@@ -19,26 +23,41 @@ public abstract class AbstractDesensitizationHandler<T extends Annotation> imple
             return buildReplacerByLength(replacer, length);
         }
 
-        // 情况二:如果原始字符串小于等于前后缀保留字符串长度,则原始字符串全部替换
+        // 情况二:原始字符串长度小于等于前后缀保留字符串长度,则原始字符串全部替换
         if ((prefixKeep + suffixKeep) >= length) {
             return buildReplacerByLength(replacer, length);
         }
 
-        // 情况三:TODO 城
+        // 情况三:原始字符串长度大于前后缀保留字符串长度,则替换中间字符串
         int interval = length - prefixKeep - suffixKeep;
         return origin.substring(0, prefixKeep) +
                 buildReplacerByLength(replacer, interval) +
                 origin.substring(prefixKeep + interval);
     }
 
-    // TODO @城:类似,子类直接获取到参数哈
     /**
-     * 获取注解的参数
+     * 前缀保留长度
      *
-     * @param anno 注解信息
-     * @return 注解的参数
+     * @param annotation 注解信息
+     * @return 前缀保留长度
      */
-    abstract Object[] getArgs(T anno);
+    abstract Integer getPrefixKeep(T annotation);
+
+    /**
+     * 后缀保留长度
+     *
+     * @param annotation 注解信息
+     * @return 后缀保留长度
+     */
+    abstract Integer getSuffixKeep(T annotation);
+
+    /**
+     * 替换符
+     *
+     * @param annotation 注解信息
+     * @return 替换符
+     */
+    abstract String getReplacer(T annotation);
 
     /**
      * 根据长度循环构建替换符
@@ -48,7 +67,11 @@ public abstract class AbstractDesensitizationHandler<T extends Annotation> imple
      * @return 构建后的替换符
      */
     private String buildReplacerByLength(String replacer, int length) {
-        return String.valueOf(replacer).repeat(Math.max(0, length));
+        StringBuilder builder = new StringBuilder();
+        for (int i = 0; i < length; i++) {
+            builder.append(replacer);
+        }
+        return builder.toString();
     }
 
 }

+ 27 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/BankCardDesensitization.java

@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard;
+
+/**
+ * 银行卡脱敏处理器
+ *
+ * @author gaibu
+ */
+public class BankCardDesensitization extends AbstractDesensitizationHandler<BankCard> {
+
+    @Override
+    Integer getPrefixKeep(BankCard annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(BankCard annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(BankCard annotation) {
+        return annotation.replacer();
+    }
+
+}

+ 25 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/CarLicenseDesensitization.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.CarLicense;
+
+/**
+ * 车牌号脱敏处理器
+ *
+ * @author gaibu
+ */
+public class CarLicenseDesensitization extends AbstractDesensitizationHandler<CarLicense> {
+    @Override
+    Integer getPrefixKeep(CarLicense annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(CarLicense annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(CarLicense annotation) {
+        return annotation.replacer();
+    }
+}

+ 25 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/ChineseNameDesensitization.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.ChineseName;
+
+/**
+ * 中文姓名脱敏处理器
+ *
+ * @author gaibu
+ */
+public class ChineseNameDesensitization extends AbstractDesensitizationHandler<ChineseName> {
+    @Override
+    Integer getPrefixKeep(ChineseName annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(ChineseName annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(ChineseName annotation) {
+        return annotation.replacer();
+    }
+}

+ 25 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/DefaultDesensitizationHandler.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Slider;
+
+/**
+ * 滑动脱敏处理器
+ *
+ * @author gaibu
+ */
+public class DefaultDesensitizationHandler extends AbstractDesensitizationHandler<Slider> {
+    @Override
+    Integer getPrefixKeep(Slider annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(Slider annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(Slider annotation) {
+        return annotation.replacer();
+    }
+}

+ 25 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/FixedPhoneDesensitization.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.FixedPhone;
+
+/**
+ * 固定电话脱敏处理器
+ *
+ * @author gaibu
+ */
+public class FixedPhoneDesensitization extends AbstractDesensitizationHandler<FixedPhone> {
+    @Override
+    Integer getPrefixKeep(FixedPhone annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(FixedPhone annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(FixedPhone annotation) {
+        return annotation.replacer();
+    }
+}

+ 25 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/IdCardDesensitization.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.IdCard;
+
+/**
+ * 身份证脱敏处理器
+ *
+ * @author gaibu
+ */
+public class IdCardDesensitization extends AbstractDesensitizationHandler<IdCard> {
+    @Override
+    Integer getPrefixKeep(IdCard annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(IdCard annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(IdCard annotation) {
+        return annotation.replacer();
+    }
+}

+ 25 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PasswordDesensitization.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Password;
+
+/**
+ * 密码脱敏处理器
+ *
+ * @author gaibu
+ */
+public class PasswordDesensitization extends AbstractDesensitizationHandler<Password> {
+    @Override
+    Integer getPrefixKeep(Password annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(Password annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(Password annotation) {
+        return annotation.replacer();
+    }
+}

+ 26 - 0
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/PhoneNumberDesensitization.java

@@ -0,0 +1,26 @@
+package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
+
+import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.PhoneNumber;
+
+/**
+ * 手机号脱敏处理器
+ *
+ * @author gaibu
+ */
+public class PhoneNumberDesensitization extends AbstractDesensitizationHandler<PhoneNumber> {
+
+    @Override
+    Integer getPrefixKeep(PhoneNumber annotation) {
+        return annotation.prefixKeep();
+    }
+
+    @Override
+    Integer getSuffixKeep(PhoneNumber annotation) {
+        return annotation.suffixKeep();
+    }
+
+    @Override
+    String getReplacer(PhoneNumber annotation) {
+        return annotation.replacer();
+    }
+}