首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

XStream 简单使用

XStream 是一个简单基于 Java 库,Java 对象序列化XML,反之亦然(即:可以轻易将 Java 对象和 xml 文档相互转换)。...不需要修改对象 - XStream序列化内部字段,如私有和最终字段,支持非公有制和内部类。默认构造函数不是强制性要求。...错误消息 - 出现异常是由于格式不正确XMLXStream 抛出一个统一例外,提供了详细诊断,以解决这个问题。 另一种输出格式 - XStream 支持其它输出格式,如 JSON。..., "studentName"); 隐式集合混叠 使用集合是表示在 XML 无需显示根。...(new FileInputStream("test.txt")); XStream 自定义转换器 XStream 允许从无到有写入转换器,这样开发人员可以编写一个完全新实现,如何对象序列化XML

71600

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

一、XStream框架组成分析 XStream是java实现对javaBean(实用类)简单快速进行序列化序列化框架。目前支持XML或JSON格式数据序列化或反序列化过程。...XStream默认使用解析器是XppDriver(这也就解释为了什么XStream使用默认构造方法创建XStream对象时候,需要依赖Xpp类库—如果没有导入对应版本Xpp类库是会报错) MarshallingStrategy...二、序列化及反序列化调用链分析 写一个简单测试案例,并在创建XStream对象位置下一个断点,然后开始debug,看看创建对象过程中XStream框架调用链究竟是什么样呢?...在JavaBean类没有实现时候XStream会调用默认readOject()方法;而实现时候,会调用重写readObject方法。...Converter原理是通过反射获取类对象并通过反射为其每个属性进行赋值 那么,也就是归根结底,XStream序列化漏洞原因就是对重写readObject()方法调用时候,黑名单控制不严格问题主要引起漏洞形成

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

java之XStream使用方法

一、XStream用途          XStream是一个Java对象和XML相互转换工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换支持。          ...因此XML常用于数据交换、对象序列化(这种序列化和Java对象序列化技术有着本质区别)。         Stream对象相当Java对象和XML之间转换器,转换过程是双向。...创建XSteam对象方式很简单,只需要new XStream()即可。          Java到xml,用toXML()方法。          Xml到Java,用fromXML()方法。...因此,尽量避免在别名中实用任何符号,却是需要下划线时候,可以考虑实用连接符“-”,这个没有问题。...另外,我们Java Bean中,常常有一些常量,在转换过程,XStream也会将这些常量转换过去,形成常量xml节点,这显然不是想要结果,对于常量字段,就不做转换了。

77910

程序员你为什么这么累【续】:编码习惯之配置规范

,包含一个service集合,service对象有name一个属性,并包含一个connector集合,connector对象有port和protocol2个属性。...=========XML========= 如果使用XML,麻烦一点,我这里使用XStream序列化和反序列化xml。...先定义bean,改bean简单多了。我习惯是转测试前一天才生成配置文件。 =======重要======= 最主要思想是,不要直接和配置文件发生关系,一定要有第三者(这里是配置bean)。...否则,一开始xml配置,后面用json配置,再后面配置放数据库?这算不算需求变更?你们算不算?算吗?不算吗?何必这么认真呢?...另外,代码里面是使用spring习惯,没有spring也是一样,或者配置bean你不用spring注入,而用工具类获取也是一样,区别不大。

57870

编码习惯 - 配置规范

然后修改configbean生成代码为: ? 代码太简洁了,有没有?!...==============================XML=========================== 如果使用XML,麻烦一点,我这里使用XStream序列化和反序列化xml。...首先在bean上增加XStream相关注解 ? 然后修改产品文件bean代码如下: ? XMLConfig工具类相关代码: ? XStream库需要增加以下依赖: ?...读取配置代码和业务代码耦合在一起!大忌!千万千万不要! 如下,业务代码里面出现了json配置代码。 ? 2. 开发初期就定配置文件 毫无意义,还导致频繁改动!先定义bean,改bean简单多了。...否则,一开始xml配置,后面用json配置,再后面配置放数据库?这算不算需求变更?你们算不算?算吗?不算吗?何必这么认真呢?

44220

通讯协议序列化解读(二) protostuff详解教程

,但是由于protobuf使用起来并不像其他序列化那么简单(首先要写.proto文件,然后编译.proto文件,生成对应.java文件),所以即使他是如何优秀,也还是没能抢占json份额。...protostuff-runtime局限是序列化前需预先传入schema,反序列化不负责对象创建只负责复制,因而必须提供默认构造函数。...此外,protostuff 还可以按照protobuf配置序列化成json/yaml/xml等格式。 在性能上,protostuff不输原生protobuf,甚至有超之势。...和protoBuf和protostuff三种测试所使用JavaBean所拥有的字段类型相同、字段数量相同(约28个)、字段所附值相同、都包含有一个List字段,用List字段size...2、反序列化   2.1、速度上:在反序列化对象数量较少情况下,protobuf比protostuff快1/4左右,比xml快10+倍。

2.5K41

编码习惯 - 配置规范(导读)

如我们现在有一个这样配置需求,顶层是Server,有port和shutdown2个属性,包含一个service集合,service对象有name一个属性,并包含一个connector集合,connector...写好后,我会编写其他业务代码,整个流程跑完整了,配置类型,字段不需要修改了,最后使用XStream生成xml文件,这就是最后交互配置文件。 ?...我xml是配置相关bean完全测试通过之后,用xstream生成xml,读取时候也是用xstream直接读成对象,完全不需要关注xml读写。...写过代码同学都应该知道,业务逻辑代码里面混杂着从xml里面读取配置项代码,其实挺难看。...千万业务代码里面不要和读取配置代码耦合在一起。切记! 这就是我今天给大家分享。我个人非常喜欢编码方式,使用简单,效果也很好。其实没有什么技术,技术一都懂,但我觉得技术外习惯才是最重要

38120

高效 Java 人必须知道十大框架

一般当测试正常进行时,进度条是绿;而当遇到了错误,就会变红。 此外,JUnit 还允许开发者创建测试套件 (Test Suite) 来查看、检测整体测试进度及测试期间发生副作用。...XStream 当涉及将对象序列化XMLXStream 库是开发人员值得信赖选择。 该库允许开发人员轻松地将对象序列化XML 并返回。...反射是这里关键,用于识别在运行时序列化对象图结构。 对象不需要修改。 任何内部字段都可以使用 XStream 序列化。...说到 XStream 功能 - 大多数对象可以被序列化,并提供特定映射,提供高性能和低内存占用,适用于具有较高吞吐量大型对象图和系统,信息不重复,可自定义转换策略,安全框架,异常情况下详细诊断等等...Log4j 恰好是其所在应用领域中最可靠库,可以扩展到支持自定义组件配置。配置语法非常简单,支持 XML、YAML 和 JSON。

87920

XStream笔记「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 XStream是一套简洁易用开源类库,用于将Java对象序列化XML或者将XML序列化为Java对象,是Java对象和XML之间一个双向转换器。...xstream; static { //创建一个XStream实例并指定一个XML解析器 xstream = new XStream(new DomDriver()); } //初始化转换对象...} } 调用: static { //创建一个XStream实例并指定一个XML解析器 xstream = new XStream(new DomDriver()); xstream.processAnnotations...:" + loginDate; } } 启用XStream提供注解功能,需要在执行Java对象与XML转换之前,先注册标注了XStream注解Java对象。...)input.readObject(); return loginLog; } } PrettyPrintWriter和CompactWriter区别在于,用CompactWriter方法输出为连续没有分隔

48930

JMeter5.1核心类SaveService解析jmx文件源码分析

2.XStream介绍 XStream 是一个简单基于 Java 库,Java 对象序列化XML,反之亦然(即:可以轻易将 Java 对象和 xml 文档相互转换)。...2.1特点 使用方便 - XStream API 提供了一个高层次外观,以简化常用用例。 无需创建映射 - XStream API 提供了默认映射大部分对象序列化。...性能 - XStream 快速和低内存占用,适合于大对象图或系统。 干净XML - XStream 创建一个干净和紧凑 XML 结果,这很容易阅读。...不需要修改对象 - XStream序列化内部字段,如私有和最终字段,支持非公有制和内部类。默认构造函数不是强制性要求。...错误消息 - 出现异常是由于格式不正确XMLXStream 抛出一个统一例外,提供了详细诊断,以解决这个问题。 另一种输出格式 - XStream 支持其它输出格式,如 JSON。

1.5K42

Spring 对象XML映射

这就是Spring对象XML映射功能,有时候也成为XML序列化和反序列化。...序列化和反序列化,方法已省略,只列出字段。...因此如果要序列化多个类,就需要配置多个JibxMarshaller。 XStream XStream是一个简单XML序列化库。 默认情况下XStream不需要任何配置即可使用。...所以最好不要使用XStream来反序列化外部加载XML(例如网络上XML)。我们还可以使用supportedClasses属性注册类,这样会确保我们只反序列化注册类。... 另外需要注意XStream只是一个XML序列化库,而不是数据绑定库。也就是说它功能不如前面几个库完善,有些命名空间不支持。因此你无法用XStream来完成类似Web服务功能。

1.2K10

2020攻防演练弹药库

另外, 有些漏洞没有找到外部公开信息, 考虑涉及相关法律法规, 不宜披露, 请见谅. 想深度交流欢迎沟通....Shiro-550一样利用, 而且这里是AES加密, 自带过WAF属性 2.如果攻击没有生效, 可以试一下删除Cookie中JSESSIONID 字段, 很多时候这个字段存在的话, 服务端不会去处理...1.2.47 远程命令执行漏洞利用工具及方法 https://github.com/CaijiOrz/fastjson-1.2.47-RCE 源项目中最后一句 当javac版本和目标服务器差太多, 会报一个这样得到错误...漏洞简介 Xstream Java 中经常用于处理 xml 库, 最近一次修复中(1.4.10版本)重现了历史反序列化远程代码执行漏洞, 所以也需要关注 2....影响组件 Xstream <1.4.6, =1.4.10 3. 漏洞指纹 xml 4. Fofa Dork 5.

2.3K20

Spring OXM-XStream快速入门

对象序列化XML或者将XML序列化为Java对象,是Java对象和XML之间一个双向转换器....May 23, 2017 XStream 1.4.10 released ---- XStream特点 灵活易用:提供简单、灵活、易用统一接口,用户无需了解底层细节 无需映射:大多数对象都可以在无须映射情况下进行序列化以及反序列化操作...---- XStream架构 Converters 转换器 当XStream遇到需要转换对象,它会委派给合适转换器实现。...---- Context 上下文引用 在XStream序列化或者反序列化对象,它会创建两个类MarshallingContext和UnmarshallingContext, 由他们来处理数据并委派合适转换器...> 小结 我们在实例化Xstream时候,指定了一个Dom XML解析器 xstream = new XStream(new DomDriver()); 如果不指定,默认为XPP(XML Pull

45020

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

XStream、Jaxb是java中用于对象xml序列化/反序列化 经典开源项目,利用它们将对象转换成xml,经常会遇到日期(Date)、数字按指定格式输出需求,下面是使用示例: 一、日期字段格式化输出...类,相应Date字段get方法上使用刚才这个Adapter @XmlJavaTypeAdapter(JaxbDateAdapter.class) public Date getCreateDate...> getDetails() {     return details; } 如果没有这二个注解,xml结果类似: ...  ... 二、数字格式化 假设我们要将一个Double型成员,按中国货币格式输出 2.1 xStream 默认DoubleConverter满足不了要求,得从它派生一个子类来重写toString...字段get方法上,用注解使用这个Adapter 1 @XmlJavaTypeAdapter(JaxbNumberAdapter.class) 2 public Double getAmount

2.6K70

【Java编程进阶之路 07】深入探索:Java序列化深层秘密 & 字节流

谨慎处理异常和错误:在序列化和反序列化过程中,可能会遇到各种异常和错误应该谨慎处理这些异常和错误,以避免敏感信息泄露或执行未预期操作。 总之,序列化安全性问题需要引起足够重视。...XML序列化库(如JAXB, XStreamXML是一种标记语言,常用于数据表示和交换。...XStreamXStream是一个简单Java库,用于将Java对象序列化XML,以及从XML序列化为Java对象。 优点: XML格式可读性强,易于理解。 支持基于文本交换和存储。...对于简单数据结构,可能不如JSON或XML直观。 5....8.5 减少序列化和反序列化开销 对于频繁进行序列化和反序列化对象,可以考虑使用对象池来管理对象实例。这样可以减少频繁创建和销毁对象所带来开销。

9210
领券