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; 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; 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; } }