Commit 42bc0d1519783e877c3524c5296c31fab61b63a0

Authored by gaibu
1 parent 7b3fca28

feat: 脱敏组件增加单元测试

yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/EmailDesensitize.java renamed to yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/Email.java
@@ -20,7 +20,7 @@ import java.lang.annotation.Target; @@ -20,7 +20,7 @@ import java.lang.annotation.Target;
20 @Retention(RetentionPolicy.RUNTIME) 20 @Retention(RetentionPolicy.RUNTIME)
21 @JacksonAnnotationsInside 21 @JacksonAnnotationsInside
22 @DesensitizeBy(handler = EmailDesensitizationHandler.class) 22 @DesensitizeBy(handler = EmailDesensitizationHandler.class)
23 -public @interface EmailDesensitize { 23 +public @interface Email {
24 24
25 /** 25 /**
26 * 匹配的正则表达式 26 * 匹配的正则表达式
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/RegexDesensitize.java renamed to yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/annotation/Regex.java
@@ -20,7 +20,7 @@ import java.lang.annotation.Target; @@ -20,7 +20,7 @@ import java.lang.annotation.Target;
20 @Retention(RetentionPolicy.RUNTIME) 20 @Retention(RetentionPolicy.RUNTIME)
21 @JacksonAnnotationsInside 21 @JacksonAnnotationsInside
22 @DesensitizeBy(handler = DefaultRegexDesensitizationHandler.class) 22 @DesensitizeBy(handler = DefaultRegexDesensitizationHandler.class)
23 -public @interface RegexDesensitize { 23 +public @interface Regex {
24 24
25 /** 25 /**
26 * 匹配的正则表达式(默认匹配所有) 26 * 匹配的正则表达式(默认匹配所有)
yudao-framework/yudao-spring-boot-starter-desensitize/src/main/java/cn/iocoder/yudao/framework/desensitize/core/regex/handler/DefaultRegexDesensitizationHandler.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.RegexDesensitize; 3 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Regex;
4 4
5 /** 5 /**
6 * 默认正则脱敏处理器 6 * 默认正则脱敏处理器
7 * 7 *
8 * @author gaibu 8 * @author gaibu
9 */ 9 */
10 -public class DefaultRegexDesensitizationHandler extends AbstractRegexDesensitizationHandler<RegexDesensitize> { 10 +public class DefaultRegexDesensitizationHandler extends AbstractRegexDesensitizationHandler<Regex> {
11 11
12 12
13 @Override 13 @Override
14 - String getRegex(RegexDesensitize annotation) { 14 + String getRegex(Regex annotation) {
15 return annotation.regex(); 15 return annotation.regex();
16 } 16 }
17 17
18 @Override 18 @Override
19 - String getReplacer(RegexDesensitize annotation) { 19 + String getReplacer(Regex annotation) {
20 return annotation.replacer(); 20 return annotation.replacer();
21 } 21 }
22 } 22 }
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.EmailDesensitize; 3 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Email;
4 4
5 /** 5 /**
6 * 邮箱脱敏处理器 6 * 邮箱脱敏处理器
7 * 7 *
8 * @author gaibu 8 * @author gaibu
9 */ 9 */
10 -public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<EmailDesensitize> { 10 +public class EmailDesensitizationHandler extends AbstractRegexDesensitizationHandler<Email> {
11 11
12 @Override 12 @Override
13 - String getRegex(EmailDesensitize annotation) { 13 + String getRegex(Email annotation) {
14 return annotation.regex(); 14 return annotation.regex();
15 } 15 }
16 16
17 @Override 17 @Override
18 - String getReplacer(EmailDesensitize annotation) { 18 + String getReplacer(Email 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/slider/DesensitizeTest.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.desensitize.core.slider;
  2 +
  3 +import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
  4 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Email;
  5 +import cn.iocoder.yudao.framework.desensitize.core.regex.annotation.Regex;
  6 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Address;
  7 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.BankCard;
  8 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.CarLicense;
  9 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.ChineseName;
  10 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.FixedPhone;
  11 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.IdCard;
  12 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Password;
  13 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.PhoneNumber;
  14 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Slider;
  15 +import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
  16 +import lombok.Data;
  17 +import org.junit.jupiter.api.Test;
  18 +
  19 +import static org.junit.jupiter.api.Assertions.assertEquals;
  20 +
  21 +public class DesensitizeTest extends BaseMockitoUnitTest {
  22 +
  23 + @Test
  24 + public void test() {
  25 + DesensitizeDemo desensitizeDemo = new DesensitizeDemo();
  26 + desensitizeDemo.setUserName("芋道源码");
  27 + desensitizeDemo.setBankCard("9988002866797031");
  28 + desensitizeDemo.setCarLicense("粤A66666");
  29 + desensitizeDemo.setFixedPhone("01086551122");
  30 + desensitizeDemo.setIdCard("530321199204074611");
  31 + desensitizeDemo.setPassword("123456");
  32 + desensitizeDemo.setPhoneNumber("13248765917");
  33 + desensitizeDemo.setSlider1("ABCDEFG");
  34 + desensitizeDemo.setSlider2("ABCDEFG");
  35 + desensitizeDemo.setSlider3("ABCDEFG");
  36 + desensitizeDemo.setEmail("1@eamil.com");
  37 + desensitizeDemo.setRegex("你好,我是芋道源码");
  38 + desensitizeDemo.setAddress("北京市海淀区上地十街10号");
  39 + desensitizeDemo.setOrigin("芋道源码");
  40 +
  41 + DesensitizeDemo d = JsonUtils.parseObject(JsonUtils.toJsonString(desensitizeDemo), DesensitizeDemo.class);
  42 + assertEquals("芋***", d.getUserName());
  43 + assertEquals("998800********31", d.getBankCard());
  44 + assertEquals("粤A6***6", d.getCarLicense());
  45 + assertEquals("0108*****22", d.getFixedPhone());
  46 + assertEquals("530321**********11", d.getIdCard());
  47 + assertEquals("******", d.getPassword());
  48 + assertEquals("132****5917", d.getPhoneNumber());
  49 + assertEquals("#######", d.getSlider1());
  50 + assertEquals("ABC*EFG", d.getSlider2());
  51 + assertEquals("*******", d.getSlider3());
  52 + assertEquals("1****@eamil.com", d.getEmail());
  53 + assertEquals("你好,我是*", d.getRegex());
  54 + assertEquals("北京市海淀区上地十街10号*", d.getAddress());
  55 + assertEquals("芋道源码", d.getOrigin());
  56 + }
  57 +
  58 + @Data
  59 + public static class DesensitizeDemo {
  60 + @ChineseName
  61 + private String userName;
  62 + @BankCard
  63 + private String bankCard;
  64 + @CarLicense
  65 + private String carLicense;
  66 + @FixedPhone
  67 + private String fixedPhone;
  68 + @IdCard
  69 + private String idCard;
  70 + @Password
  71 + private String password;
  72 + @PhoneNumber
  73 + private String phoneNumber;
  74 + @Slider(prefixKeep = 6,suffixKeep = 1,replacer = "#")
  75 + private String slider1;
  76 + @Slider(prefixKeep = 3,suffixKeep = 3)
  77 + private String slider2;
  78 + @Slider(prefixKeep = 10)
  79 + private String slider3;
  80 + @Email
  81 + private String email;
  82 + @Regex(regex = "芋道源码",replacer = "*")
  83 + private String regex;
  84 + @Address
  85 + private String address;
  86 + private String origin;
  87 + }
  88 +}
yudao-framework/yudao-spring-boot-starter-desensitize/src/test/java/cn/iocoder/yudao/framework/desensitize/core/slider/annotation/Address.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.desensitize.core.slider.annotation;
  2 +
  3 +import cn.iocoder.yudao.framework.desensitize.core.base.annotation.DesensitizeBy;
  4 +import cn.iocoder.yudao.framework.desensitize.core.slider.handler.AddressHandler;
  5 +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
  6 +
  7 +import java.lang.annotation.Documented;
  8 +import java.lang.annotation.ElementType;
  9 +import java.lang.annotation.Retention;
  10 +import java.lang.annotation.RetentionPolicy;
  11 +import java.lang.annotation.Target;
  12 +
  13 +/**
  14 + * 地址
  15 + *
  16 + * @author gaibu
  17 + */
  18 +@Documented
  19 +@Target({ElementType.FIELD})
  20 +@Retention(RetentionPolicy.RUNTIME)
  21 +@JacksonAnnotationsInside
  22 +@DesensitizeBy(handler = AddressHandler.class)
  23 +public @interface Address {
  24 +
  25 + String replacer() default "*";
  26 +
  27 +}
yudao-framework/yudao-spring-boot-starter-desensitize/src/test/java/cn/iocoder/yudao/framework/desensitize/core/slider/handler/AddressHandler.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.desensitize.core.slider.handler;
  2 +
  3 +import cn.iocoder.yudao.framework.desensitize.core.base.handler.DesensitizationHandler;
  4 +import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.Address;
  5 +
  6 +public class AddressHandler implements DesensitizationHandler<Address> {
  7 + @Override
  8 + public String desensitize(String origin, Address annotation) {
  9 + return origin + annotation.replacer();
  10 + }
  11 +}