Java 使用woodstox配置最大属性大小

Java 使用woodstox配置最大属性大小,java,xml-parsing,woodstox,Java,Xml Parsing,Woodstox,出于某种奇怪的原因,woodstox core asl似乎对属性值的最大大小有一个限制,即512KB。因此,XML解析失败,错误为524288,以下为512KB限制: com.ctc.wstx.exc.WstxParsingException: Maximum attribute size (524288) exceeded at [row,col {unknown-source}]: [1,898330] at com.ctc.wstx.sr.StreamScanner.constr

出于某种奇怪的原因,woodstox core asl似乎对属性值的最大大小有一个限制,即512KB。因此,XML解析失败,错误为524288,以下为512KB限制:

com.ctc.wstx.exc.WstxParsingException: Maximum attribute size (524288) exceeded
 at [row,col {unknown-source}]: [1,898330]
    at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
    at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
    at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464)
    at com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1959)
    at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3063)
有没有办法配置此最大属性大小,甚至完全禁用它?但是,为什么属性值必须这么大是另一个论点——我必须看看我能做些什么

我试图查看源代码,但我只能访问有限的源代码,无法在工作时浏览github。他们的文档中也没有任何指针


我使用的库的版本是4.2.0。升级版本是可能的,但即使使用较新的版本,它们似乎也有此限制。

是的,有一种方法可以改变这一点。错误消息确实应该提到它,但由于它没有。。。让我看看。常数是在WstxInputProperties中为Woodstox特定的常数定义的,而不是标准的Stax常数,并且您需要的属性是P_MAX_ATTRIBUTE_SIZE。 要有效禁用检查,请使用Integer.MAX\u值的值。 通过调用XMLInputFactory.setProperty方法更改值


增加这些限制是为了防范各种拒绝服务DoS攻击:有几个;您可以在WstxInputProperties中看到可用的。设置非常保守,如果您真的需要处理512kB的属性值,这很有意义…:

我在看那些类——我只是不知道如何利用这些属性。我要试试看!好啊Stax规范没有很多配置方法,因此setProperty几乎是执行任何操作的唯一方法,在配置方面: