1.问题起因 2017年3月15日,fastjson官方发布安全升级公告,该公告介绍fastjson在1.2.24及之前的版本存在代码执行漏洞,当恶意攻击者提交一个精心构造的序列化数据到服务端时,由于fastjson在反序列化时存在漏洞,可导致远程任意代码执行. 自1.2.25及之后的版本,禁用了部分autotype的功能,也就是”@type”这种指定类型的功能会被限制在一定范围内使用.而由于反序列化对象时,需要检查是否开启了autotype.所以如果反序列化检查时,autotype没有开启,就…
1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer .  1 /** 2 * 自定义redis序列化器 3 */ 4 @SuppressWarnings("unchecked") 5 @Bean("redisTemplate") 6 public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory f…
最近所属的组需要对接一些征信结构,就涉及到很多中的数据格式,而springmvc中使用的是jackson作为@ResponseBody的依赖jar 但是个人认为fastkson的性能要高于jackson所以,希望返回的json格式是采用fastjson而非jackson 特此记录: 首先请参照:SerializerFeature属性 名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true   UseSingleQuotes 使用单引号而不是双引号,默认为fa…
背景 记录项目中遇到的 关于fastjson jsonobject转string乱序,string转jsonObject乱序问题的解决方案 fastJson issues 问题来源描述参见: https://github.com/alibaba/fastjson/issues/359 https://github.com/alibaba/fastjson/issues/954 [最终解答] 单嵌套的Map序列化与反序列问题 JSONObject map=new JSONObject(true);…
今天使用RequestBody接受前端传过来的参数,以前接受字符串数组非常成功,这次把形参改成了List<User>,原本以为顺利接受参数并映射成User的list结构,结果竟然在我取user.getId()时报了com.alibaba.fastjson.JSONObject cannot be cast to xxx的错. 前端: $.ajax({ url : "/insertUser", async : true, cache : false, type : "…
解决办法:https://github.com/alibaba/fastjson/wiki/enable_autotype 文摘如下: 一.添加autotype白名单 添加白名单有三种方式,三选一,如下: 1. 在代码中配置 ParserConfig.getGlobalInstance().addAccept("com.taobao.pac.client.sdk.dataobject."); 如果有多个包名前缀,分多次addAccept 2. 加上JVM启动参数 -Dfastjson.…
最近在写一个xml序列化及反序列化实现时碰到个问题,大致类似下面的代码: class Program { static void Main1(string[] args) { var test = new Test() { A = "test" }; var ms = new MemoryStream(); using (XmlWriter xmlWriter = XmlWriter.Create(ms, new XmlWriterSettings() { Encoding = Enc…
新建的GenericFastJson2JsonRedisSerializer里面添加白名 添加: static {        ParserConfig.getGlobalInstance().addAccept("com.xxx.xxx.bo");        ParserConfig.getGlobalInstance().addAccept("com.xxx.xxx.redis");    }参考:https://blog.csdn.net/Innovat…
JSON这个类是fastjson API的入口,主要的功能都通过这个类提供. 序列化API // 将Java对象序列化为JSON字符串,支持各种各种Java基本类型和JavaBean public static String toJSONString(Object object, SerializerFeature... features); // 将Java对象序列化为JSON字符串,返回JSON字符串的utf-8 bytes public static byte[] toJSONBytes(…
使用JSONObject  读取JSON字符串时,读取出来的数据,通过变量时是无序的. 但是业务希望返回是顺序的. String str="{name:\"A\",address:\"B\",tel:\"C\",user:{name:\"A\",address:\"B\"}}"; JSONObject json=JSONObject.parseObject(str); 解决办法如下: L…