# 数据脱敏

数据脱敏,将一些敏感数据隐藏,如:手机号,身份证号等信息

fastmybatis自带了手机号、身份证号、银行卡、邮箱四种脱敏处理。

  • 手机号脱敏:MobileSensitiveFormatter
  • 身份证号脱敏:IdCardSensitiveFormatter
  • 银行卡脱敏:BankCardSensitiveFormatter
  • 邮箱脱敏:EmailSensitiveFormatter

以手机号脱敏为例,实现方式如下:

在实体类字段上面加@Column注解,并指定formatClass属性

@Table(name = "t_user", pk = @Pk(name = "id", strategy = PkStrategy.INCREMENT))
public class TUser {

    ...
    
    // 手机号脱敏
    @Column(formatClass = MobileSensitiveFormatter.class)
    private String mobile;

    ...
}

通过mapper.list, mapper.page, mapper.getById查询出来的的数据都会进行脱敏

# 自定义

自定义格式化数据,新建类并继承BaseFormatter,重写format(Object value)方法

public class MyFormatter extends BaseFormatter<String> {

    @Override
    public String format(Object value) {
        if (value == null) {
            return null;
        }
        // TODO: 返回格式化后的数据
    }

}

然后指定formatClass

@Column(formatClass = MyFormatter.class)
private String username;