mirror of https://github.com/apache/poi.git
[bug-63725] commons-compress 1.19
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1866402 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d9144dd039
commit
d51ca537ed
|
@ -40,7 +40,7 @@
|
|||
<classpathentry kind="lib" path="lib/commons-math3-3.6.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/xmlunit-core-2.5.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/objenesis-2.6.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-compress-1.18.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-compress-1.19.jar"/>
|
||||
<classpathentry kind="lib" path="lib/mockito-core-3.0.0.jar"/>
|
||||
<classpathentry kind="lib" path="lib/byte-buddy-1.10.1.jar"/>
|
||||
<classpathentry kind="lib" path="lib/byte-buddy-agent-1.10.1.jar"/>
|
||||
|
|
|
@ -233,7 +233,7 @@ project('ooxml') {
|
|||
compile 'org.apache.xmlbeans:xmlbeans:3.1.0'
|
||||
compile 'org.apache.commons:commons-collections4:4.4'
|
||||
compile 'org.apache.commons:commons-math3:3.6.1'
|
||||
compile 'org.apache.commons:commons-compress:1.18'
|
||||
compile 'org.apache.commons:commons-compress:1.19'
|
||||
compile 'org.apache.santuario:xmlsec:2.1.2'
|
||||
compile 'org.bouncycastle:bcpkix-jdk15on:1.62'
|
||||
compile 'com.github.virtuald:curvesapi:1.06'
|
||||
|
|
|
@ -244,9 +244,9 @@ under the License.
|
|||
<property name="ooxml.xmlbeans.jar" location="${ooxml.lib}/xmlbeans-3.1.0.jar"/>
|
||||
<property name="ooxml.xmlbeans.url"
|
||||
value="https://repository.apache.org/content/repositories/releases/org/apache/xmlbeans/xmlbeans/3.1.0/xmlbeans-3.1.0.jar"/>
|
||||
<property name="ooxml.commons-compress.jar" location="${main.lib}/commons-compress-1.18.jar"/>
|
||||
<property name="ooxml.commons-compress.jar" location="${main.lib}/commons-compress-1.19.jar"/>
|
||||
<property name="ooxml.commons-compress.url"
|
||||
value="${repository.m2}/maven2/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar"/>
|
||||
value="${repository.m2}/maven2/org/apache/commons/commons-compress/1.19/commons-compress-1.19.jar"/>
|
||||
|
||||
<!-- jars in the ooxml-test-lib directory, see the fetch-ooxml-jars target-->
|
||||
<property name="ooxml.test.reflections.jar" location="${ooxml.test.lib}/reflections.jar"/>
|
||||
|
@ -652,6 +652,7 @@ under the License.
|
|||
<include name="commons-codec-1.12*"/>
|
||||
<include name="commons-compress-1.16*"/>
|
||||
<include name="commons-compress-1.17*"/>
|
||||
<include name="commons-compress-1.18*"/>
|
||||
<include name="commons-collections4-4.1*"/>
|
||||
<include name="commons-collections4-4.2*"/>
|
||||
<include name="commons-collections4-4.3*"/>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.18</version>
|
||||
<version>1.19</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.virtuald</groupId>
|
||||
|
|
|
@ -152,7 +152,7 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.18</version>
|
||||
<version>1.19</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.virtuald</groupId>
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.apache.poi.ooxml.util;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.StringWriter;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
@ -27,11 +28,15 @@ import javax.xml.parsers.DocumentBuilder;
|
|||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.stream.events.Namespace;
|
||||
import javax.xml.transform.OutputKeys;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.apache.poi.util.POILogFactory;
|
||||
import org.apache.poi.util.POILogger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.*;
|
||||
import org.xml.sax.ErrorHandler;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
@ -97,6 +102,33 @@ public final class DocumentHelper {
|
|||
}
|
||||
}
|
||||
|
||||
public static String domToString(Node node) throws Exception {
|
||||
TransformerFactory tf = TransformerFactory.newInstance();
|
||||
Transformer t = tf.newTransformer();
|
||||
t.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||
StringWriter sw = new StringWriter();
|
||||
t.transform(new DOMSource(node), new StreamResult(sw));
|
||||
return sw.toString();
|
||||
}
|
||||
|
||||
public static Attr findIdAttr(Element e, String name) throws Exception {
|
||||
Attr att = e.getAttributeNode("Id");
|
||||
if(att != null && name.equals(att.getValue())) {
|
||||
return att;
|
||||
}
|
||||
NodeList nl = e.getChildNodes();
|
||||
for (int i = 0; i < nl.getLength(); i++) {
|
||||
Node child = nl.item(i);
|
||||
if (child instanceof Element) {
|
||||
Attr x = findIdAttr((Element)child, name);
|
||||
if (x != null) {
|
||||
return x;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
|
||||
static {
|
||||
documentBuilderFactory.setNamespaceAware(true);
|
||||
|
|
|
@ -70,8 +70,7 @@ import org.etsi.uri.x01903.v13.SignedSignaturePropertiesType;
|
|||
import org.etsi.uri.x01903.v13.SignerRoleType;
|
||||
import org.w3.x2000.x09.xmldsig.DigestMethodType;
|
||||
import org.w3.x2000.x09.xmldsig.X509IssuerSerialType;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.*;
|
||||
|
||||
/**
|
||||
* XAdES Signature Facet. Implements XAdES v1.4.1 which is compatible with XAdES
|
||||
|
@ -224,10 +223,32 @@ public class XAdESSignatureFacet extends SignatureFacet {
|
|||
private XMLObject addXadesObject(Document document, QualifyingPropertiesType qualifyingProperties) {
|
||||
Node qualDocElSrc = qualifyingProperties.getDomNode();
|
||||
Node qualDocEl = document.importNode(qualDocElSrc, true);
|
||||
markIds(qualDocEl);
|
||||
List<XMLStructure> xadesObjectContent = Arrays.asList(new DOMStructure(qualDocEl));
|
||||
return getSignatureFactory().newXMLObject(xadesObjectContent, null, null, null);
|
||||
}
|
||||
|
||||
private void markIds(Node node) {
|
||||
if (node instanceof Element) {
|
||||
markIds((Element)node);
|
||||
} else if (node instanceof Document) {
|
||||
markIds(((Document)node).getDocumentElement());
|
||||
}
|
||||
}
|
||||
|
||||
private void markIds(Element element) {
|
||||
if (element != null) {
|
||||
Attr att = element.getAttributeNode("Id");
|
||||
if (att != null) {
|
||||
element.setIdAttributeNode(att, true);
|
||||
}
|
||||
NodeList nl = element.getChildNodes();
|
||||
for (int i = 0; i < nl.getLength(); i++) {
|
||||
markIds(nl.item(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Reference addXadesReference() throws XMLSignatureException {
|
||||
List<Transform> transforms = singletonList(newTransform(CanonicalizationMethod.INCLUSIVE));
|
||||
return newReference("#"+signatureConfig.getXadesSignatureId(), transforms, XADES_TYPE, null, null);
|
||||
|
|
|
@ -117,6 +117,9 @@ public final class POIDataSamples {
|
|||
}
|
||||
|
||||
public static POIDataSamples getXmlDSignInstance() {
|
||||
if (System.getProperty(TEST_PROPERTY) == null) {
|
||||
System.setProperty(TEST_PROPERTY, "../../test-data");
|
||||
}
|
||||
if(_instXmlDSign == null) _instXmlDSign = new POIDataSamples("xmldsign");
|
||||
return _instXmlDSign;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue