String str = "{
"body": {
"productOfferingList": [{
"isBundle": "true",
"prodSpecCharValueUse": [{
"productSpecification": {
"@type": "Independent Product",
"name": "Leased Line",
"id": "LL"
},
"valueType": "String",
"name": "Hybrid Flag",
"productSpecCharacteristicValue": [{
"regex": "",
"value": "Y"
}]
}]
}]
}
}";
JSONObject job=JSONObject.parse(str);
在将字符串转换成JsonObject的时候,报错:
com.alibaba.fastjson.JSONException: autoType is not support. Independent Product
现在的解决方案是绕过关键字检查,使用Feature.DisableSpecialKeyDetect
JSONObject jsonObject = JSONObject.parse(str, Feature.DisableSpecialKeyDetect);
fastJson官方解答:
2017年3月15日,fastjson官方发布安全升级公告,该公告介绍fastjson在1.2.24及之前的版本存在代码执行漏洞,当恶意攻击者提交一个精心构造的序列化数据到服务端时,由于fastjson在反序列化时存在漏洞,可导致远程任意代码执行。自1.2.25及之后的版本,禁用了部分autotype的功能,也就是@type这种指定类型的功能会被限制在一定范围内使用。而由于反序列化对象时,需要检查是否开启了autotype。所以如果反序列化检查时,autotype没有开启,就会报错。所以采用上述序列化方式时需要在项目配置fastjson时配置autotype相关内容本文选择在代码中配置其他方式请参考:
enable_autotype