Skip to content
广告❤️成为赞助商

Field Desensitization

The @Desensitization annotation is used for data desensitization, with 15 built-in common rules such as Phone Number, Email, Bank Card Number, and Name.

@Desensitization

  • Data desensitization annotation
  • type(): Desensitization type, see: DesensitizationTypeEnum
  • startInclude(): Start position (inclusive) for desensitization. Used when type() is DesensitizationTypeEnum.CUSTOM and desensitizationHandler() is Void
  • endExclude(): End position (exclusive) for desensitization. Used when type() is DesensitizationTypeEnum.CUSTOM and desensitizationHandler() is Void
  • desensitizationHandler(): Desensitization handler. Used when type() is DesensitizationTypeEnum.CUSTOM. The handler must implement the com.mongoplus.handlers.DesensitizationHandler interface.

Example

Using in Entity Class

Mark a field in an entity class with @Desensitization and set it to Chinese name type desensitization:

java
public class User {
    @Desensitization(type = DesensitizationTypeEnum.CHINESE_NAME)
    private String userName;
}

Custom Desensitization Handler

java
public class CustomDesensitizationHandler implements DesensitizationHandler {
    @Override
    public String desensitized(Field field, Object obj, int startInclude, int endExclude, DesensitizationTypeEnum desensitizedType) {
        return DesensitizedUtil.desensitized(String.valueOf(obj), startInclude, endExclude, desensitizedType);
    }
}

// Using in entity class
public class User {
    @Desensitization(desensitizationHandler = CustomDesensitizationHandler.class)
    private String userName;
}