- 支持13种类型数据的脱敏,例如:邮箱地址、手机号、身份证、银行卡、车牌号、姓名、家庭地址、ip地址、生日、密码等
- 配置灵活,同时支持全局脱敏和局部脱敏
- 任意对象都可以被脱敏
- 支持jsonpath表达式,可灵活控制同一个对象不同层级关系时既要脱敏又要不脱敏的场景
待补充
<dependency>
<groupId>io.github.applesline</groupId>
<artifactId>desensitize</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
import org.applesline.desensitize.annotation.EnableDesensitize;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDesensitize
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RequestMapping("queryResult")
@Desensitize(fieldMapping = @FieldMapping(fields = {"_mobile"},type = DesensitizeType.MOBILE))
public Result queryResult() {
return new Result("[email protected]","17622233344");
}
{
"_email": "[email protected]",
"_mobile": "176****3344"
}
@Desensitize(
fieldMapping = {
@FieldMapping(fields = {"_mobile"},type = DesensitizeType.MOBILE),
@FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)}
)
{
"_email": "123******@163.com",
"_mobile": "176****3344"
}
@Desensitize(
fieldMapping = {
@FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
@FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)}
)
{
"phone": "123**********.com",
"result": {
"_email": "123******@163.com",
"_mobile": "176****3344"
}
}
@Desensitize(
fieldMapping = {
@FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
@FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)},
ignoreByJpe = "$._mobile"
)
{
"_mobile": "17622233345",
"result": {
"_email": "123******@163.com",
"_mobile": "176****3344"
}
}
@SpringBootApplication
@EnableDesensitize(
fieldMapping = {
@FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
@FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)},
ignoreByJpe = "$._mobile"
)
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@Desensitize
public ApiResult queryResult() {
return new ApiResult("17622233345",new Result("[email protected]","17622233344"));
}
{
"_mobile": "17622233345",
"result": {
"_email": "123******@163.com",
"_mobile": "176****3344"
}
}
@SpringBootApplication
@EnableDesensitize(
fieldMapping = {
@FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
@FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)},
ignoreByJpe = "$._mobile"
)
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@Desensitize( fieldMapping = @FieldMapping(fields = {"_mobile"},type = DesensitizeType.MOBILE) )
public ApiResult queryResult() {
return new ApiResult("17622233345",new Result("[email protected]","17622233344"));
}
{
"_mobile": "176****3345",
"result": {
"_email": "[email protected]",
"_mobile": "176****3344"
}
}
class ApiResult {
private String _mobile;
private Result result;
public ApiResult(String _mobile, Result result) {
this._mobile = _mobile;
this.result = result;
}
setter...
getter...
}
class Result {
private String _email;
private String _mobile;
public Result(String _email, String _mobile) {
this._email = _email;
this._mobile = _mobile;
}
setter...
getter...
}
使用过程中有任何问题欢迎前来骚扰~_~
邮箱地址:[email protected]