XStream 从1.3.X升级到1.4.X版本遇到问题
傲慢的上校 2024-4-15 14:21:23 Author: blog.csdn.net(查看原文) 阅读量:16 收藏

傲慢的上校 于 2024-04-15 14:21:23 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

一、com.thoughtworks.xstream.security.ForbiddenClassException

原来为第三方提供jar包使用XStream1.3.X版本,后来升级到1.4.X版本,第三方系统使用时遇到com.thoughtworks.xstream.security.ForbiddenClassException 问题

com.thoughtworks.xstream.security.ForbiddenClassException: com.jt.bean.xml.ComconfigParse
	at com.thoughtworks.xstream.security.NoTypePermission.allows(NoTypePermission.java:26)

解决方案:

XStream xStream = new XStream();

//由于对象默认开启安全防护,添加这条语句解决问题。尽量限制最低权限。

xStream.addPermission(AnyTypePermission.ANY);

降低权限后,解决com.thoughtworks.xstream.security.ForbiddenClassException问题

二、XML中带“_”解析不出来问题

在xml转成bean类时,发现xml中user_name 中有值,但是转换的bean类中 user_name 为空,

需要修改XStream初始化

XStream xStream = new XStream(new XppDriver(new XmlFriendlyNameCoder("_-", "_")));

因为_是关键字,默认的会变为__  
$也是关键字,默认为_-,这2个参数一个改变$的显示,一个改变_的显示

修改后,user_name 可以转换正常


文章来源: https://blog.csdn.net/aomandeshangxiao/article/details/137778846
如有侵权请联系:admin#unsafe.sh