当前位置: 首页 > news >正文

java项目篇-用户脱敏展示

用户敏感信息脱敏展示

定义手机号和证件号的 Jackson 自定义序列化器,并在对应需要脱敏的敏感字段上指定自定义序列化器。在进行指定的需要脱敏的字段(身份证号,手机号,银行卡号等)序列化的时候,该字段自动变成脱敏json对象。

1)身份证号序列化器

import cn.hutool.core.util.DesensitizedUtil;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException;/*** 身份证号脱敏反序列化*/
public class IdCardDesensitizationSerializer extends JsonSerializer<String> {@Overridepublic void serialize(String idCard, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {String phoneDesensitization = DesensitizedUtil.idCardNum(idCard, 4, 4);jsonGenerator.writeString(phoneDesensitization);}
}

2)手机号序列化器

import cn.hutool.core.util.DesensitizedUtil;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException;/*** 手机号脱敏反序列化*/
public class PhoneDesensitizationSerializer extends JsonSerializer<String> {@Overridepublic void serialize(String phone, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {String phoneDesensitization = DesensitizedUtil.mobilePhone(phone);jsonGenerator.writeString(phoneDesensitization);}
}

3) 敏感字段上自定义序列化器。

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.experimental.Accessors;import java.util.Date;/*** 乘车人返回参数*/
@Data
@Accessors(chain = true)
public class PassengerRespDTO {/*** 证件号码*/@JsonSerialize(using = IdCardDesensitizationSerializer.class)private String idCard;/*** 手机号*/@JsonSerialize(using = PhoneDesensitizationSerializer.class)private String phone;
}
http://www.lryc.cn/news/463861.html

相关文章:

  • 《C++计算引擎:驱动高效计算的强大动力》
  • Linux的hadoop集群部署
  • 请问:ESModule 与 CommonJS 的异同点是什么?
  • 【数据结构与算法】力扣 59. 螺旋矩阵 II
  • HarmonyOS Next模拟器异常问题及解决方法
  • 求最大公约数(c语言)
  • Android Camera2在textureView中的预览和拍照
  • Redis的缓存问题
  • C语言小游戏--猜数字
  • 代理IP在爬虫中的作用是什么?
  • 卡尔曼讲解与各种典型进阶MATLAB编程(专栏目录,持续更新……)
  • Java项目-基于Springboot的智慧养老平台项目(源码+文档).zip
  • 如何测试IP速度?
  • IDEA使用Alibaba Cloud Toolkit插件自动化部署jar包
  • FFMPEG录屏(19)--- 枚举Windows下的屏幕列表,并获取名称、缩略图
  • 【python】NumPy(三):文件读写
  • 硬件产品经理的开店冒险之旅(下篇)
  • 基于GeoScene Pro的开源数据治理与二维制图规范化处理智能工具箱
  • CSS 设置网页的背景图片
  • 如何使用DockerSpy检测你的Docker镜像是否安全
  • 数据结构练习题4(链表)
  • 【前端】如何制作自己的网站(7)
  • 《数字图像处理基础》学习02-BMP位图文件
  • 车辆管理系统设计与SpringBoot技术融合
  • 常见TCP/IP协议基础——计算机网络
  • SVM支持向量机python实现
  • linux查看系统类型
  • SpringSecurity 捕获自定义JWT过滤器抛出的异常
  • 中小型企业网络的设计与实现
  • 小马识途海外媒体推广有何优势?