在后台管理中,对于手机号,身份证,姓名这些数据不允许所有人都能看,这时候我们要对相对数据进行脱敏.
先声明了一个注解, 通过对相关接口函数进行声明,以及配置需要脱敏的参数类型SecretTypeEnum
,默认脱敏手机号
/**
* 脱敏声明
*/
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SecretManage {
SecretTypeEnum[] value() default {
SecretTypeEnum.MOBILE};
}
我们目前只支持对手机号,身份证,用户姓名三个字段进行脱敏, 字段名称必须符合枚举的desc值
package com.test.base.enums;
import com.fasterxml.jackson.annotation.JsonValue;
/**
* @author fyf
* @date 2021/2/26
*/
public enum SecretTypeEnum implements BaseEnum {
MOBILE(0, "mobile"),
NAME(1, "name"),
ID(2, "identity")
;
@JsonValue
private int code;
private String desc;
public String getDesc() {
return desc;
}
SecretTypeEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
@Override
public