文章目录
- 一、场景描述
- 二、代码示例
-
- 1、User实体类
- 2、自定义序列化器
- 3、User实体类中的注解
- 4、Mapper接口
- 5、Service
- 6、Controller
- 7、测试和验证
- 8、请求返回结果打印示例
一、场景描述
通过Mybatis
与数据库交互,并使用Jackson
对敏感信息进行脱敏处理。
使其HTTP接口
返回用户的基本信息中身份证、手机和住址等敏感信息将被脱敏。
技术栈
• SpringBoot
:用于构建RESTful API
。
• Mybatis
:用于数据库操作。
• Jackson
:用于JSON
序列化和脱敏处理。
步骤
- 配置数据库:
在application.properties
中配置数据库连接。 - 创建数据库表:创建一个
user
表,包含id
、name
、identity_card
、phone
和address
字段。 - 创建实体类:创建一个
User实体类
,与数据库表对应。 - 创建
Mapper接口
:创建一个Mybatis Mapper接口
,用于操作数据库。 - 实现数据脱敏:使用
Jackson
的自定义序列化器对敏感信息进行脱敏。 - 创建
Service
和Controller
:编写业务逻辑和控制器来处理HTTP请求
。 - 测试:运行应用程序并测试接口,验证数据脱敏效果。
二、代码示例
1、User实体类
@Data
public class User {
private Long id;
private String name;
private String identityCard;
private String phone;
private String address;
}
2、自定义序列化器
对身份证、手机、住址以及姓名进行脱敏处理,在SensitiveDataSerializer序列化器
中添加相应的脱敏逻辑。
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
public class SensitiveDataSerializer extends StdSerializer<String> {
public SensitiveDataSerializer() {
this(null);
}
public SensitiveDataSerializer(Class<String> t) {
super(t);