jmapper-framework / jmapper-core

Elegance, high performance and robustness all in one java bean mapper
http://jmapper-framework.github.io/jmapper-core
Apache License 2.0
227 stars 41 forks source link

Breaks with XStream 1.4.18 #99

Open injulkarnilesh opened 2 years ago

injulkarnilesh commented 2 years ago

XStream's latest release 1.4.18 introduced breaking changes as

when unmarshalling with an XStream instance using the default blacklist of an uninitialized security framework. XStream is therefore now using a whitelist by default.

With this, we need to explicitly whitelist model classes which we can use with XStream.

Currently, it is breaking with

com.googlecode.jmapper.exceptions.JMapperException: com.thoughtworks.xstream.security.ForbiddenClassException: 
com.googlecode.jmapper.xml.beans.XmlJmapper
at com.googlecode.jmapper.config.JmapperLog.error(JmapperLog.java:46)
at com.googlecode.jmapper.JMapper.<init>(JMapper.java:437)
at com.googlecode.jmapper.JMapper.<init>(JMapper.java:412)
Caused by: com.thoughtworks.xstream.security.ForbiddenClassException: com.googlecode.jmapper.xml.beans.XmlJmapper
at com.thoughtworks.xstream.security.NoTypePermission.allows(NoTypePermission.java:26)
at com.thoughtworks.xstream.mapper.SecurityMapper.realClass(SecurityMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:47)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1391)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1376)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1270)
at com.googlecode.jmapper.util.FilesManager.toXmlJmapper(FilesManager.java:1048)
at com.googlecode.jmapper.util.FilesManager.readAtRuntime(FilesManager.java:1035)
at com.googlecode.jmapper.xml.XML.<init>(XML.java:66)
at com.googlecode.jmapper.xml.XmlBuilder.atRuntime(XmlBuilder.java:44)
at com.googlecode.jmapper.generation.MapperBuilder.generate(MapperBuilder.java:86)
at com.googlecode.jmapper.JMapper.createMapper(JMapper.java:450)
at com.googlecode.jmapper.JMapper.<init>(JMapper.java:432)