解決辦法:https://github.com/alibaba/fastjson/wiki/enable_autotype 文摘如下: 一、添加autotype白名單 添加白名單有三種方式,三選一,如下: 1. 在代碼中配置ParserConfig.getGlobalInstance().addAc... ...
解決辦法:https://github.com/alibaba/fastjson/wiki/enable_autotype
文摘如下:
一、添加autotype白名單
添加白名單有三種方式,三選一,如下:
1. 在代碼中配置
ParserConfig.getGlobalInstance().addAccept("com.taobao.pac.client.sdk.dataobject.");
如果有多個包名首碼,分多次addAccept
2. 加上JVM啟動參數
-Dfastjson.parser.autoTypeAccept=com.taobao.pac.client.sdk.dataobject.,com.cainiao.
如果有多個包名首碼,用逗號隔開
3. 通過fastjson.properties文件配置。
在1.2.25/1.2.26版本支持通過類路徑的fastjson.properties文件來配置,配置方式如下:
fastjson.parser.autoTypeAccept=com.taobao.pac.client.sdk.dataobject.,com.cainiao. // 如果有多個包名首碼,用逗號隔開
二、打開autotype功能
如果通過配置白名單解決不了問題,可以選擇繼續打開autotype功能,fastjson在新版本中內置了多重防護,但是還是可能會存在一定風險。兩種方法打開autotype,二選一,如下:
1、JVM啟動參數
-Dfastjson.parser.autoTypeSupport=true
2、代碼中設置
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
如果有使用非全局ParserConfig則用另外調用setAutoTypeSupport(true);