原来为第三方提供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转成bean类时,发现xml中user_name 中有值,但是转换的bean类中 user_name 为空,
需要修改XStream初始化
XStream xStream = new XStream(new XppDriver(new XmlFriendlyNameCoder("_-", "_")));
因为_是关键字,默认的会变为__
$也是关键字,默认为_-,这2个参数一个改变$的显示,一个改变_的显示
修改后,user_name 可以转换正常