From 45e6accd2a58d4412fc38e27844c278f2273236b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 28 十二月 2021 12:03:00 +0800
Subject: [PATCH] add 增加邮箱与银行卡脱敏策略 并应用到 SysUser

---
 ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java |   20 +++++++++++++++++---
 ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java        |   35 ++++++++++++++++++++++++++---------
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java     |    4 ++++
 3 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index dde679c..2d991a5 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -3,7 +3,9 @@
 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 @@
 	/**
 	 * 鐢ㄦ埛閭
 	 */
+    @Sensitive(strategy = SensitiveStrategy.EMAIL)
 	@ApiModelProperty(value = "鐢ㄦ埛閭")
 	@Email(message = "閭鏍煎紡涓嶆纭�")
 	@Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
@@ -73,6 +76,7 @@
 	/**
 	 * 鎵嬫満鍙风爜
 	 */
+    @Sensitive(strategy = SensitiveStrategy.PHONE)
 	@ApiModelProperty(value = "鎵嬫満鍙风爜")
 	private String phonenumber;
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java
index 5f9bf72..f667173 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java
@@ -1,30 +1,47 @@
 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;
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
index 2458747..3c6d23e 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java
@@ -34,9 +34,11 @@
     @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 @@
         @Sensitive(strategy = SensitiveStrategy.ADDRESS)
         private String address;
 
+        /**
+         * 閭
+         */
+        @Sensitive(strategy = SensitiveStrategy.EMAIL)
+        private String email;
+
+        /**
+         * 閾惰鍗�
+         */
+        @Sensitive(strategy = SensitiveStrategy.BANK_CARD)
+        private String bankCard;
+
     }
 
 }

--
Gitblit v1.9.3