官方认为旧的common-collection有一些结构和API设计上的问题,但修复这些问题会产生大量不能向前兼容的改动。于是推出的common-collection4不再认为是一个用来替换common-collection的新版本,而是一个新的包。
两者的命名空间不冲突,可以共存在同一个项目中。
改动:
对LazyMap.decorate方法进行了改动
common-collection-3.1
common-collection4-4.0
但不影响调用链的执行
在common-collection4-4.0下,依旧能利用common-collection-3.1的调用链,只是换了个包名而已
common-collections4-4.0
JDK 1.8.0_192
针对common-collections4,ysoserial也是给出了两条反序列化调用链,也就是cc2和cc4
在cc2中,出现一个陌生的类,org.apache.commons.collections4.comparators.TransformingComparator类,一个common-collections4独有的类
从调用链来看,会利用TransformingComparator.compare方法
compare方法中,会调用transform方法。