首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏叽叽西

    XStream 简单使用

    > </dependency> 记住以下步骤 创建 XStream 对象 XStream xstream = new XStream(new StaxDriver()); 序列化对象到 XML // Object xstream.aliasPackage("my.company.xstream", "com.yiibai.xstream"); XStream 注解 XStream 支持使用注解做同样的任务。 xstream.processAnnotations(Student.class); 或者 xstream.autodetectAnnotations(true); XStream高级 XStream 编写 JSON XStream 支持JSON 通过初始化 XStream对象适当的驱动程序。 void main(String args[]) { XStream xstream = new XStream(new JsonHierarchicalStreamDriver()

    1.2K00编辑于 2022-05-17
  • 来自专栏全栈程序员必看

    XStream笔记「建议收藏」

    xstream; static { //创建一个XStream实例并指定一个XML解析器 xstream = new XStream(new DomDriver()); } //初始化转换对象 xstream.aliasField("id", User.class, "userId"); xstream.aliasField("userName", User.class, "name 实例并指定一个XML解析器 xstream = new XStream(new DomDriver()); xstream.processAnnotations(LoginLog.class); xstream.processAnnotations(LoginLog.class); //自动加载注解Bean //xstream.autodetectAnnotations(true); 流化对象 : public class ObjectStreamSample { private static XStream xstream = new XStream(); //Java对象转化为XML

    79530编辑于 2022-11-17
  • 来自专栏Java工程师成长之路

    XStream进行xml和bean互转

    加入pom <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId > <version>1.4.3</version> </dependency> 最简单的使用方式 XStream xStream = new XStream(); //声明XStream注解来源 xStream.processAnnotations(FuiouResponse.class); //xml 转bean Object o = xStream.fromXML(xmlStr); //bean 转xml xStream.toXML(response) 需要指明注解 /** * @author laoliangliang * @date 2018/11/6 17:00 */ @XStreamAlias

    1.4K20发布于 2019-09-10
  • 来自专栏小工匠聊架构

    Spring OXM-XStream快速入门

    XStream概述 XStream的特点 XStream架构 Converters 转换器 IO 输入输出 Context 上下文引用 Facade 统一接口 Quick Start 加入Maven 区别如下: XStream.XPATH_REFERENCES(默认值)通过XPath引用来标识重复的引用 XStream.ID_REFERENCES :使用ID应用来标识重复的引用 XStream.NO_REFERENCES <xstream.version>1.4.10xstream.version> 接下来,开始我们的XStream之旅,对象和XML之间的互换。 ; static { // 创建一个Xstream实例,并指定一个XML解析器 xstream = new XStream(new DomDriver()); > com.xgj.oxm.xstream.quickDemo.domain.User> 小结 我们在实例化Xstream的时候,指定了一个Dom XML解析器 xstream = new XStream

    70620发布于 2021-08-17
  • 来自专栏小工匠聊架构

    Spring OXM-XStream注解

    概述 示例 示例源码 概述 XStream不但可以通过编程的方式对XML进行转换,而且支持基于注解的方式。 ; public class Test { private static XStream xstream; static { xstream = new XStream 比如 xstream.processAnnotations(User.class); xstream.processAnnotations(LoginLog.class); 手工注册User和LoginLog XStream除了手工注册外,还提供了一个自动检测标注了XStream注解的java对象的方法Xstream#autodetectAnnotations(true),不仅方便,而且提供了缓存机制缓存所有标注了 XStream注解的Java对象。

    48420发布于 2021-08-17
  • 来自专栏程序技术知识

    java之XStream使用方法

    一、XStream的用途          XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。           xStream = new XStream();   output(0, xStream, person);   /************** 设置类别名 ****************/   xStream.alias xStream.aliasAttribute(Address.class, "zipcode", "Zipcode");   output(4, xStream, person);   /******* 对象xStream    System.out.println(xStream.fromXML(person_xml).toString());    System.out.println(xStream.fromXML static void output(int i, XStream xStream, Object obj) {   String xml = xStream.toXML(obj);   System.out.println

    1.2K10编辑于 2022-05-07
  • 来自专栏小工匠聊架构

    Spring OXM-XStream使用别名

    xstream; static { // 创建一个Xstream实例,使用默认的XPP解析器 xstream = new XStream(); ; XStream xstream = new XStream(); System.out.println(xstream.toXML(teamBlog)); } 输出如下 ; XStream xstream = new XStream(); // alias Class xstream.alias("blog", Blog.class ; XStream xstream = new XStream(); xstream.alias("blog", Blog.class); xstream.alias ; XStream xstream = new XStream(); xstream.aliasPackage( "com.artisan",

    77420发布于 2021-08-17
  • 来自专栏丑胖侠

    Spring boot xstream解析UnknownFieldException异常

    今天使用xstream解析xml文件,遇到一个特别隐蔽的问题,花费了几乎两个小时才解决。因此,记录一下,帮助其他遇到类似问题的同行们。 可是每次请求都会报类似的异常: Caused by: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter T toBean(String xmlStr, Class<T> cls) { XStream xstream = new XStream(new DomDriver()); xstream.setClassLoader(cls.getClassLoader()); xstream.processAnnotations(cls); T obj = (T) xstream.fromXML(xmlStr); return obj; } 其中添加了 xstream.setClassLoader(cls.getClassLoader

    75730编辑于 2022-05-06
  • 来自专栏小工匠聊架构

    Spring OXM-XStream流化对象

    概述 示例 示例源码 概述 XStream为java.io.ObjectInputStream和ObjectOutputStream提供了替代的实现,允许以对象流方式进行XML序列化或者反序列化操作。 XStream默认提供了几个常用的实现类用于输出,比如CompactWriter和PrettyPrintWriter。 java.io.ObjectOutputStream; import java.io.PrintWriter; import java.util.Date; import com.thoughtworks.xstream.XStream ; import com.thoughtworks.xstream.io.xml.PrettyPrintWriter; import com.xgj.oxm.xstream.quickDemo.domain.LoginLog XStream xstream; static { xstream = new XStream(); } /** * *

    38720发布于 2021-08-17
  • 来自专栏成长道路

    XStream将XML映射到对对象

    ; import com.thoughtworks.xstream.annotations.XStreamImplicit; @XStreamAlias(value="address-book") java.io.OutputStreamWriter; import java.util.List; import java.util.Scanner; import com.thoughtworks.xstream.XStream ; import com.thoughtworks.xstream.io.xml.DomDriver; public class Test { public static void main(String xs=new XStream(new DomDriver());   xs.processAnnotations(Address.class);   OutputStreamWriter osw= xs=new XStream(new DomDriver());  xs.processAnnotations(Address.class);  InputStreamReader isr=null

    1.2K00发布于 2017-12-28
  • 来自专栏小工匠聊架构

    Spring OXM-XStream转换器

    import java.util.Date; import java.util.Locale; import com.thoughtworks.xstream.XStream; import com.xgj.oxm.xstream.quickDemo.domain.LoginLog static XStream xstream; static { // 创建一个Xstream实例,使用默认的XPP解析器 xstream = new XStream (); // (1)设置类别名,修改默认的全限定名的名称 xstream.alias("user", User.class); xstream.alias ; public class XStreamConverterDemo { private static XStream xstream; static { // 创建一个Xstream实例,使用默认的XPP解析器 xstream = new XStream(); // (1)设置类别名,修改默认的全限定名的名称

    46630发布于 2021-08-17
  • 来自专栏Timeline Sec

    CVE-2020-26258&26259:XStream漏洞复现

    0x02 漏洞概述 编号:CVE-2020-26258,CVE-2020-26259 2020年12月14日,XStream 发布了XStream 反序列化漏洞的风险提示。 在pom.xml中,添加XStream依赖: <! 到这里,我们在新建的XStream项目中引入了XStream依赖 简单使用 新建一个Test.java文件,内容如下: import com.thoughtworks.xstream.XStream xstream = new XStream(); //XML序列化 String xml = xstream.toXML(bean); System.out.println 0x06 修复方式 将XStream升级到最新版本。

    2.1K10发布于 2021-01-05
  • 来自专栏FreeBuf

    XStream反序列化漏洞原理深度分析

    一、XStream框架组成分析 XStream是java实现对javaBean(实用类)简单快速进行序列化反序列化的框架。目前支持XML或JSON格式数据的序列化或反序列化过程。 XStream总体主要由上图所示的五个接口和抽象类组成。其中, AbsractDriver是为XStream提供解析器和编辑器的创建的抽象类。 XStream默认使用的解析器是XppDriver(这也就解释为了什么XStream使用默认的构造方法创建XStream对象的时候,需要依赖Xpp类库—如果没有导入对应版本的Xpp类库是会报错的) MarshallingStrategy 1、XStream对象初始化过程利用链及源码分析 StepInto,很明显我们我们进入了XStream的无参构造方法中,在这个方法中,传递了默认的接口反射提供者(与其他框架的反序列化方式不同,XStream 三、漏洞成因 通过对XStream框架整体的分析不难发现,是程序在调用XStream中的fromXML()方法对XML数据进行反序列化的时候,通过绕过XStream的黑名单限制而已输入带有任意命令的xml

    2.4K10发布于 2021-10-11
  • 来自专栏区块链实战

    SpringMVC XStream 返回Xml时完美支持List,Map输出 顶

    ; import com.thoughtworks.xstream.io.xml.DomWriter; import com.thoughtworks.xstream.io.xml.QNameMap; import com.thoughtworks.xstream.io.xml.SaxWriter; import com.thoughtworks.xstream.io.xml.StaxReader; xstream = new XStream(); private HierarchicalStreamDriver streamDriver; private String encoding XStream getXStream() { return this.xstream; } /** * Set the XStream mode * * @see XStream#XPATH_REFERENCES * @see XStream#ID_REFERENCES * @see XStream#NO_REFERENCES

    2.8K20发布于 2019-03-26
  • 来自专栏菩提树下的杨过

    XStream、JAXB 日期(Date)、数字(Number)格式化输出xml

    XStream、Jaxb是java中用于对象xml序列化/反序列化 的经典开源项目,利用它们将对象转换成xml时,经常会遇到日期(Date)、数字按指定格式输出的需求,下面是使用示例: 一、日期字段格式化输出 1.1 xStream 1 XStream x = new XStream(); 2 x.registerConverter(new DateConverter("yyyy-MM-dd HH:mm:ss ", null,TimeZone.getTimeZone("GMT+8"))); xStream默认使用UTC时间格式输出,上面的代码演示了如何按北京时间输出 yyyy-MM-dd HH:mm:ss 格式 x = new XStream(); 2 x.registerConverter(new DoubleToCurrencyStringConverter(Locale.CHINA)); ; 9 import com.thoughtworks.xstream.XStream; 10 11 public class XStreamAndJaxbTest { 12 13 private

    3.3K70发布于 2018-01-19
  • 来自专栏Timeline Sec

    【漏洞分析】XStream反序列化漏洞(CVE-2021-29505)

    》 0x02 调试环境准备 因为要在本地调试,没必要再过一遍springboot 索性就直接写代码用Xstream解析poc 创建maven项目,引入XStream ? 直接主函数里定义xml调用Xstream解析poc ? import com.thoughtworks.xstream.XStream; public class Main { public static void main(String[] args = new XStream();; XStream xstream = new XStream(); xstream.fromXML(xml); } } 然后就可以开始愉快的调试了 0x03 漏洞分析 参考大佬的经验总结,XStream产生漏洞的主要问题就在于: XStream在处理实现了Serializable接口和没有实现Serializable接口的类生成的对象时,方法是不一样的

    3.7K30发布于 2021-06-25
  • 来自专栏云鼎实验室的专栏

    漏洞情报|XStream远程代码执行漏洞风险通告(CVE-2020-26217)

    近日,腾讯云安全运营中心监测到,XStream官方发布安全公告,披露了一个XStream远程代码执行漏洞(漏洞编号:CVE-2020-26217),漏洞被利用可导致远程代码执行。 漏洞详情 XStream是一个开源的Java类库,它能够将对象序列化成XML或将XML反序列化为对象。 在XStream的受影响版本中,存在一个远程代码执行漏洞,攻击者可通过操纵已处理的输入流,替换或注入可以执行任意shell命令的对象,造成远程代码执行。 影响版本 XStream < 1.4.14 安全版本 XStream 1.4.14 修复建议 XStream官方已发布安全版本,腾讯云安全建议您尽快升级XStream组件的web服务,避免影响业务。 http://x-stream.github.io/changes.html 【备注】:建议您在升级前做好数据备份工作,避免出现意外 漏洞参考 https://github.com/x-stream/xstream

    1.8K90发布于 2020-11-17
  • 来自专栏Timeline Sec

    CVE-2021-29505:XStream反序列化命令执行漏洞复现

    作者:hatjwe@Timeline Sec 本文字数:1222 阅读时长:3~4min 声明:请勿用作违法用途,否则后果自负 0x01 简介 XStream是一个轻量级、简单易用的开源Java类库 0x02 漏洞概述 编号:CVE-2021-29505 XStream在解析XML文本时使用黑名单机制来防御反序列化漏洞,但是其 1.4.16及之前版本黑名单存在缺陷。 0x03 影响版本 XStream <= 1.4.16 0x04 环境搭建 使用vulhub进行搭建 执行如下命令启动一个SpringBoot+XStream的1.4.16的环境 cd vulhub /xstream/CVE-2021-29505 docker-compose up -d ? 0x06 修复方式 1、将XStream升级到1.4.17或以上版本 2、使用安全api https://x-stream.github.io/security.html#example 参考链接:

    3.7K40发布于 2021-06-25
  • 来自专栏Java成神之路

    Java微信开发_Exception_01_The type org.xmlpull.v1.XmlPullParser cannot be resolved. It is indirectly ref

    com.souvc.weixin.message.resp.VideoMessage; import com.souvc.weixin.message.resp.VoiceMessage; import com.thoughtworks.xstream.XStream ; import com.thoughtworks.xstream.core.util.QuickWriter; import com.thoughtworks.xstream.io.HierarchicalStreamWriter ; import com.thoughtworks.xstream.io.xml.PrettyPrintWriter; import com.thoughtworks.xstream.io.xml.XppDriver 使其支持CDATA */ private static XStream xstream = new XStream(new XppDriver() { public HierarchicalStreamWriter xstream.toXML(newsMessage); } } 二、异常 ?

    61030发布于 2018-08-10
  • 来自专栏在水一方

    XML— 数据传输方式

    xStream = new XStream(); //设置别名, 默认会输出全路径 xStream.alias("User", User.class); //转为xml static void main(String[] args) { XStream xStream = new XStream(); xStream.alias("User", User.class lanweihong", "lwhhhp@gmail.com"); XStream xStream = new XStream(); //声明XStream注解来源 xStream.processAnnotations xStream = new XStream(new DomDriver()); //处理注解 xStream.processAnnotations(clazz); xStream = new XStream(new DomDriver()); xStream.processAnnotations(obj.getClass());

    3.5K20编辑于 2022-06-14
领券