1)首先参考: https://github.com/LeadroyaL/fastjson-blacklist
在fj1之中黑名单名为 denyHashCodes 在fj2之中也是一样,只不过存储在 ObjectReaderProvider.java 之中
为了方便调试我们可以将 NotSupportAutoTypeErrorTest.java 中的 test2 改为以下代码
@Test
public void test2() {
Bean bean = new Bean(Arrays.asList(new Int1()));
String str = JSON.toJSONString(bean, JSONWriter.Feature.WriteClassName);
Bean bean2 = (Bean)JSON.parseObject(str, Object.class, JSONReader.Feature.SupportAutoType);
assertThrows(JSONException.class, () -> JSON.parseObject(str, Object.class, JSONReader.Feature.ErrorOnNotSupportAutoType));
}
参考: https://github.com/alibaba/fastjson2/wiki/fastjson2_autotype_cn
Bean bean2 = (Bean)JSON.parseObject(str, Object.class, JSONReader.Feature.SupportAutoType);
增加一行代码进行反序列化操作
2)开始调试
在匹配白名单的地方下断点(fj2先对比白名单后对比黑名单)
然后用调试模式启动test2
成功了,我们就可以调试了