package com.iailab.framework.desensitize.core.slider.annotation; import com.iailab.framework.desensitize.core.base.annotation.DesensitizeBy; import com.iailab.framework.desensitize.core.slider.handler.DefaultDesensitizationHandler; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 滑动脱敏注解 * * @author gaibu */ @Documented @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @JacksonAnnotationsInside @DesensitizeBy(handler = DefaultDesensitizationHandler.class) public @interface SliderDesensitize { /** * 后缀保留长度 */ int suffixKeep() default 0; /** * 替换规则,会将前缀后缀保留后,全部替换成 replacer * * 例如:prefixKeep = 1; suffixKeep = 2; replacer = "*"; * 原始字符串 123456 * 脱敏后 1***56 */ String replacer() default "*"; /** * 前缀保留长度 */ int prefixKeep() default 0; }