Annotation Interface Desensitize


@Target({FIELD,METHOD}) @Retention(RUNTIME) @Documented public @interface Desensitize
数据脱敏注解

标记在字段上,JSON序列化时自动脱敏

主要功能: 1. 支持多种脱敏类型(手机号、身份证、邮箱、银行卡等) 2. 支持自定义脱敏规则 3. 自动在JSON序列化时应用脱敏

使用示例:

public class UserDTO {

    @Desensitize(type = DesensitizeType.MOBILE)
    private String mobile; // 138****1234

    @Desensitize(type = DesensitizeType.ID_CARD)
    private String idCard; // 110**********123

    @Desensitize(type = DesensitizeType.EMAIL)
    private String email; // k***@example.com

    @Desensitize(type = DesensitizeType.CUSTOM, prefixKeep = 3, suffixKeep = 2, replacer = '#')
    private String custom; // abc###xyz
}
Author:
Kerbores(kerbores@riemann.tech)
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    脱敏类型
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    int
    自定义脱敏:前缀保留字符数
    char
    自定义脱敏:替换字符
    int
    自定义脱敏:后缀保留字符数
  • Element Details

    • type

      脱敏类型
      Returns:
      脱敏类型
    • prefixKeep

      int prefixKeep
      自定义脱敏:前缀保留字符数

      仅在type=CUSTOM时生效

      Returns:
      前缀保留字符数,默认0
      Default:
      0
    • suffixKeep

      int suffixKeep
      自定义脱敏:后缀保留字符数

      仅在type=CUSTOM时生效

      Returns:
      后缀保留字符数,默认0
      Default:
      0
    • replacer

      char replacer
      自定义脱敏:替换字符

      仅在type=CUSTOM时生效

      Returns:
      替换字符,默认*
      Default:
      '*'