首页 > Web开发 > 详细

@Jsonview过滤pojo和jackson安全漏洞

时间:2021-08-16 22:39:16      阅读:26      评论:0      收藏:0      [点我收藏+]

com.fasterxml.jackson.annotation.JsonView
@JsonView可以过滤pojo的属性,使Controller在返回json时候,pojo某些属性不返回,比如User的密码,一般是不返回的,就可以使用这个注解。

利用@Jsonview注解过滤pojo

com.fasterxml.jackson.annotation.JsonView
@JsonView可以过滤pojo的属性,使Controller在返回json时候,pojo某些属性不返回

1.在pojo字段添加@Jsonview

2.添加视图接口


@Getter
@Setter
@ToString
@TableName("project")
public class Project {

	public interface ProjectBaseInfo{}

	@TableId
	@JsonView(ProjectBaseInfo.class)
	private Integer id;

	// 项目编码
	@JsonView(ProjectBaseInfo.class)
	private String projectNumber;

	// 项目名称
	@JsonView(ProjectBaseInfo.class)
	private String projectName;

	// 数量
	@JsonView(ProjectDetailInfo.class)
	private Integer count;
}

3.在Controller中调用

@GetMapping("getProjectList")
@ApiOperation("获取项目列表")
@JsonView(Project.ProjectBaseInfo.class)
public Results<List<Project>> getProjectList() {
    List<Project> list = dtsService.getProjectList(DTS_TYPE);
    return Results.ok(list);
}

关于jackson的安全漏洞

jackson开发方发布了修复公告建议用户更新到2.12.0+ 版本,同时后续将发布的版本也会加入该漏洞的修复措施。

升级jackson,参考

  • 打开pom.xml, 在properties加入jackson.version
<properties>
    <java.version>1.8</java.version>
    <jackson.version>2.12.4</jackson.version>
</properties>
  • 加入依赖
<!-- JSON工具类 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>

@Jsonview过滤pojo和jackson安全漏洞

原文:https://www.cnblogs.com/tanjr/p/15149488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!