Эх сурвалжийг харах

add 增加邮箱与银行卡脱敏策略 并应用到 SysUser

疯狂的狮子li 3 жил өмнө
parent
commit
45e6accd2a

+ 4 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -3,7 +3,9 @@ package com.ruoyi.common.core.domain.entity;
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ruoyi.common.annotation.Sensitive;
 import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.enums.SensitiveStrategy;
 import com.ruoyi.common.xss.Xss;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -65,6 +67,7 @@ public class SysUser extends BaseEntity {
 	/**
 	 * 用户邮箱
 	 */
+    @Sensitive(strategy = SensitiveStrategy.EMAIL)
 	@ApiModelProperty(value = "用户邮箱")
 	@Email(message = "邮箱格式不正确")
 	@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
@@ -73,6 +76,7 @@ public class SysUser extends BaseEntity {
 	/**
 	 * 手机号码
 	 */
+    @Sensitive(strategy = SensitiveStrategy.PHONE)
 	@ApiModelProperty(value = "手机号码")
 	private String phonenumber;
 

+ 26 - 9
ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java

@@ -1,31 +1,48 @@
 package com.ruoyi.common.enums;
 
 import cn.hutool.core.util.DesensitizedUtil;
+import lombok.AllArgsConstructor;
+
 import java.util.function.Function;
 
 /**
  * 脱敏策略
- *  @author Yjoioooo
+ *
+ * @author Yjoioooo
+ * @version 3.6.0
  */
+@AllArgsConstructor
 public enum SensitiveStrategy {
 
-    /** 身份证脱敏 */
+    /**
+     * 身份证脱敏
+     */
     ID_CARD(s -> DesensitizedUtil.idCardNum(s, 3, 4)),
 
-    /** 手机号脱敏 */
+    /**
+     * 手机号脱敏
+     */
     PHONE(DesensitizedUtil::mobilePhone),
 
-    /**  地址脱敏 */
-    ADDRESS(s -> DesensitizedUtil.address(s, 8));
+    /**
+     * 地址脱敏
+     */
+    ADDRESS(s -> DesensitizedUtil.address(s, 8)),
+
+    /**
+     * 邮箱脱敏
+     */
+    EMAIL(DesensitizedUtil::email),
+
+    /**
+     * 银行卡
+     */
+    BANK_CARD(DesensitizedUtil::bankCard);
 
     //可自行添加其他脱敏策略
 
     private final Function<String, String> desensitizer;
 
-    SensitiveStrategy(Function<String, String> desensitizer) {
-        this.desensitizer = desensitizer;
-    }
-
     public Function<String, String> desensitizer() {
         return desensitizer;
     }

+ 17 - 3
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java

@@ -34,9 +34,11 @@ public class TestSensitiveController extends BaseController {
     @GetMapping("/test")
     public AjaxResult<TestSensitive> test() {
         TestSensitive testSensitive = new TestSensitive()
-            .setIdCard("3333199910101212")
-            .setPhone("18888888888")
-            .setAddress("北京市朝阳区某某四合院1203室");
+            .setIdCard("210397198608215431")
+            .setPhone("17640125371")
+            .setAddress("北京市朝阳区某某四合院1203室")
+            .setEmail("17640125371@163.com")
+            .setBankCard("6226456952351452853");
         return AjaxResult.success(testSensitive);
     }
 
@@ -62,6 +64,18 @@ public class TestSensitiveController extends BaseController {
         @Sensitive(strategy = SensitiveStrategy.ADDRESS)
         private String address;
 
+        /**
+         * 邮箱
+         */
+        @Sensitive(strategy = SensitiveStrategy.EMAIL)
+        private String email;
+
+        /**
+         * 银行卡
+         */
+        @Sensitive(strategy = SensitiveStrategy.BANK_CARD)
+        private String bankCard;
+
     }
 
 }