Field Desensitization
The
@Desensitizationannotation is used for data desensitization, with 15 built-in common rules such asPhone Number,Bank Card Number, andName.
@Desensitization
- Data desensitization annotation
type(): Desensitization type, see: DesensitizationTypeEnumstartInclude(): Start position (inclusive) for desensitization. Used whentype()isDesensitizationTypeEnum.CUSTOManddesensitizationHandler()isVoidendExclude(): End position (exclusive) for desensitization. Used whentype()isDesensitizationTypeEnum.CUSTOManddesensitizationHandler()isVoiddesensitizationHandler(): Desensitization handler. Used whentype()isDesensitizationTypeEnum.CUSTOM. The handler must implement thecom.mongoplus.handlers.DesensitizationHandlerinterface.
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;
}
