首页 > 编程语言 >java项目篇-用户脱敏展示

java项目篇-用户脱敏展示

时间:2024-10-20 21:51:20浏览次数:8  
标签:java 展示 jackson import 序列化 com 脱敏 fasterxml

用户敏感信息脱敏展示

定义手机号和证件号的 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> {

    @Override
    public 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> {

    @Override
    public 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;
}

标签:java,展示,jackson,import,序列化,com,脱敏,fasterxml
From: https://blog.csdn.net/weixin_46028606/article/details/143085528

相关文章

  • 一,Java 环境配置与基础语法
    Java环境配置与基础语法在开始Java编程之前,正确配置Java环境和理解基础语法是至关重要的。这不仅帮助我们编写有效的Java程序,还能确保程序的顺利运行。Java环境配置Java环境配置主要包括JDK(JavaDevelopmentKit)和JRE(JavaRuntimeEnvironment)的安装和环境变量的配......
  • 测开必备-java基础-for、while和do-while循环使用场景
    在编程中,选择使用for循环、while循环还是do-while循环,主要取决于你的具体需求和代码逻辑。下面我们来详细讨论一下这三种循环的使用场景。for循环的使用场景for循环通常用于已知循环次数的场景,特别是当你需要遍历数组、集合或执行固定次数的迭代时。for循环的语法结构清晰地定义......
  • 黑马JavaWeb-day02
    什么是JavaScript?JavaScript:简称Js,是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互JavaScript和Java是完全不同的语言,无论是概念还是设计。但是基础语法类似。JavaScriptJavaScript引入方式内部脚本:将JS代码定义在HTML页面中JavaScript代码必......
  • 一,认识计算机和Java基础
    认识计算机和Java基础在开始学习Java编程之前,了解计算机的基础知识和Java语言的概述是非常重要的。这不仅帮助我们更好地理解Java程序的执行流程,还能让我们对计算机的组成和操作有更深入的认识。计算机的组成计算机由硬件和软件两大部分构成:硬件硬件是指计算机系统中由......
  • 使用 JavaScript (Node.js) 实现验证码识别与自动化登录
    安装所需依赖首先,确保你已经安装了Node.js。然后,使用npm安装所需的库:bashnpminstallaxiosjimptesseract.js2.下载验证码图片使用axios下载验证码图片并保存到本地:更多内容联系1436423940javascriptconstfs=require('fs');constaxios=require('axios');......
  • java常见异常及解决方法
    1.ArithmeticException算术异常是因为在Java中尝试执行除以零的操作导致的,Java不允许整数类型的变量进行除以零的操作,因为数学上这是没有定义的。当程序试图执行这样的操作时,JVM将抛出一个ArithmeticException异常。解决方法:1.通过if条件检查除数if(divisor!=0){......
  • java常见异常
    java常见异常1.NullPointerException(空指针异常)在发现空指针或易产生的地方进行非空判断用Optional类来处理判空2.ArrayIndexOutOfBoundsException(数组越界异常)在访问数组元素前,确保索引值在有效范围内。使用循环时,仔细检查边界条件3.ClassCastException(类型转......
  • java中10个常见的异常及其解决方案
    NullPointerException:空指针异常原因:尝试访问一个空对象的成员或方法。解决方案:确保在使用对象之前它们已经被正确初始化了。可以使用Objects.requireNonNull()来检查关键对象是否为空。ArrayIndexOutOfBoundsException:数组下标越界异常原因:试图访问数组的一个不存在的索......
  • Java常见异常,出现原因和解决方法
    java.lang.ArithmeticException算术运算异常,例如除数为0,所以引发了算数异常Java.lang.StringIndexOutOfBoundsException:这是截取字符串substring()产生的下标越界异常。原因是可能是字符串为空,或长度不足1Java.lang.NullPointerException空指针异常出现该异常的原因在于某......
  • Java常见的10个异常
    1.NullPointerException空指针异常,当操作一个null对象的方法或属性时会抛出这个异常。是一个很头疼的异常,因为它是运行时异常,不需要手动捕获,但运行时碰到这个异常会中断程序。2.OutOfMemoryError内存溢出异常,这不是程序能控制的,当需要分配的对象的内存超出了当前最大的堆内......