fasterxml

com.alibaba.fastjson使用介绍

喜夏-厌秋 提交于 2020-11-25 00:20:32
首先,介绍一下 fastjson 。fastjson是由alibaba开源的一套json处理器。与其他json处理器(如Gson,Jackson等)和其他的Java对象序列化反序列化方式相比,有比较明显的性能优势。 maven 添加配置: <!-- 阿里fastjson包JSON转换--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version> 1.2 . 47 </version> </dependency> String queryJson1 = JSON. toJSONString (studentQuery); //序列化 String queryJson2 = JSON. toJSONString (studentQuery, SerializerFeature. WriteDateUseDateFormat ); //序列化时指定格式 String queryJson3 = JsonUtils. toJSONString (studentQuery, true); //自定义序列化格式 StudentQuery queryParam = JSON. parseObject (queryJson, StudentQuery. class ); /

fastjson<=1.2.62远程代码执行漏洞通告

血红的双手。 提交于 2020-11-24 02:55:00
0x00 漏洞背景 2020年02月日, 360CERT监测到友商发布了fastjson<=1.2.62远程代码执行漏洞通告。 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 此次漏洞是由于 CVE-2020-8840 的 gadget 绕过了fastjson的黑名单而导致的,当服务端存在收到漏洞影响的 xbean-reflect 依赖并且开启fastjson的 autotype 时,远程攻击者可以通过精心构造的请求包触发漏洞从而导致在服务端上造成远程命令执行的效果。 0x01 风险等级 360CERT对该漏洞进行评定 评定方式 等级 威胁等级 中危 影响面 一般 360CERT建议广大用户及时更新fastjson版本。做好资产 自查/自检/预防 工作,以免遭受攻击。 0x02 影响版本 fastjson <= 1.2.62 0x03 漏洞证明 0x04 修复建议 1.fastjson默认关闭 autotype ,请在项目源码中全文搜索以下代码,找到并将此代码删除: ParserConfig.getGlobalInstance () .setAutoTypeSupport ( true ); 2.将JDK升级到最新版本。 0x05 产品侧解决方案

fastjson<=1.2.62远程代码执行漏洞通告

强颜欢笑 提交于 2020-11-24 02:40:50
0x00 漏洞背景 2020年02月日, 360CERT监测到友商发布了fastjson<=1.2.62远程代码执行漏洞通告。 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 此次漏洞是由于 CVE-2020-8840 的 gadget 绕过了fastjson的黑名单而导致的,当服务端存在收到漏洞影响的 xbean-reflect 依赖并且开启fastjson的 autotype 时,远程攻击者可以通过精心构造的请求包触发漏洞从而导致在服务端上造成远程命令执行的效果。 0x01 风险等级 360CERT对该漏洞进行评定 评定方式 等级 威胁等级 中危 影响面 一般 360CERT建议广大用户及时更新fastjson版本。做好资产 自查/自检/预防 工作,以免遭受攻击。 0x02 影响版本 fastjson <= 1.2.62 0x03 漏洞证明 0x04 修复建议 1.fastjson默认关闭 autotype ,请在项目源码中全文搜索以下代码,找到并将此代码删除: ParserConfig.getGlobalInstance () .setAutoTypeSupport ( true ); 2.将JDK升级到最新版本。 0x05 产品侧解决方案

(HttpMessageNotWritableException ) No converter found for return value of type xxxx

☆樱花仙子☆ 提交于 2020-11-23 09:52:30
最近在家没事儿,写写代码玩,用了Maven构建SSM项目,结果提示如下信息 org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class com.lcy.pojo.User 【原因】找不到返回值类型的转换器,找了好久发现controller返回的是json格式数据 【方案】在maven的pox.xml中只引入Json的依赖时,只引入了“jackson-core”;没有引入 “jackson-databind”,添加了依赖后问题解决了。 【提示】当controller标记@ResponseBody后,会用解析器去解析Controller的返回值,解析器会去寻找SpringMvc中注册的HttpMeesageConverter接口的实现类,结果因为没有添加对应的依赖,所以 就找不到Json类型的转换器了,添加依赖后就正常了。 【正确的依赖】 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> < dependency > < groupId > com.fasterxml.jackson

SpringBoot 整合ES

限于喜欢 提交于 2020-11-19 11:50:46
1, pom文件 <dependency> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-starter-data-elasticsearch </artifactId> </dependency> 2,实体类 ES 存储的实体类 package com.jtl.alarm.repository.entity ; import com.fasterxml.jackson.annotation. JsonFormat ; import com.jtl.alarm.dto.ESAlarmDataDTO ; import com.jtl.device.service.dto.RealTimeDto ; import lombok. Data ; import org.springframework.data.elasticsearch.annotations.* ; import javax.persistence. Id ; import java.io.Serializable ; import java.util.Date ; import java.util.List ; /** * @ProjectName: 20200601 * @Package: com.jtl.alarm

Jackson最常用配置与注解

不打扰是莪最后的温柔 提交于 2020-11-04 09:37:16
一、bean import java.util.Date; import java.util.LinkedList; import java.util.List; public class Result<T> { private Integer code; private String message; private Date time; private T data; public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public T getData() { return data; } public void setData(T data) { this.data = data; } @Override public

java elasticsearch

流过昼夜 提交于 2020-09-30 06:02:31
1.用maven创建依赖,pom.xml: 基于elasticsearch7.9.1 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.9.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.13</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId>

页面查询案例(使用redis数据库)

泪湿孤枕 提交于 2020-08-16 04:07:46
需求: 1.提供一个index.html页面,页面中有个省份,下拉列表 2.当页面加载完成时,发送ajax请求。加载所有省份 前期项目初步搭建: index.html $(function(){ $.get("url",{},funtion(data){ //url-查询servlet路径,{}不要参数,data为返回的数据,填充到省份列表中 //因为有查询数据库因此有三层架构service(findProvinceServlet)-service(ProvinceService)-dao(ProviniceDao)查询数据库 }) }) ProvinceDao 1.声明JDBCTemplate,查询数据库 2.返回查询的值(List集合) ProvinceService 1.声明dao 2.通过Dao返回查询所有的结果集 findProvinceServlet 1.调用service完成查询,返回List<Province> 2.将数据返回,因为采用的是Ajax请求,因此需要将数据序列化Json 3.响应 整体代码: index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/jquery-3.3.1.min.js"><

java后端无法接收到前端传递的json对象

大憨熊 提交于 2020-08-14 06:34:03
java后端无法接收到前端传递的json对象 一·可能是因为未使用@RequestBody 在Controller层中,要么使用@RestController要么使用@Controller+@RequestBody在使用的方法前定义。 @RestController @RequestMapping("/api") public class Usercontroller { @RequestMapping("/") String home() { return "hello"; } } 二·可能是因为定义的model类型名称不规范导致的 1.应用场景,引入注解 例如:当我们后端与APP进行数据交互时肯定会遇到需要获取P值的问题,默认情况下传递的P值 均为大写单字母的形式。还有当我们在对接其他业务场景时也会遇到一些不规范的命名方式 isRefuse等以is开头的字段,这些可能是对一些.net接口对接时出现的, 但是java中这种类似的命名方式是不正确的。 那么我们应该如何处理这些类似的情况呢。这里介绍一个注解,@JsonProperty 2.@JsonProperty使用 import com.fasterxml.jackson.annotation.JsonProperty; @JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称

ObjectMapper转换json内部类报错

Deadly 提交于 2020-08-12 17:13:28
异常信息 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.zhoulp.xxx$Dabc` (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor 解决方法 在内部类加上static关键字,声明为内部静态类即可 来源: oschina 链接: https://my.oschina.net/u/4198095/blog/4292617