You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2019/06/25 16:49:48 UTC
svn commit: r1862078 - in
/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache:
jcp/xml/dsig/internal/dom/ xml/security/ xml/security/c14n/
xml/security/encryption/ xml/security/keys/keyresolver/
xml/security/signature/ xml/securi...
Author: coheigea
Date: Tue Jun 25 16:49:48 2019
New Revision: 1862078
URL: http://svn.apache.org/viewvc?rev=1862078&view=rev
Log:
Remove DocumentBuilder handling from main code
Modified:
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/Init.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/CanonicalizerSpi.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/encryption/DocumentSerializer.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/SignedInfo.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java
santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java Tue Jun 25 16:49:48 2019
@@ -53,7 +53,6 @@ import javax.xml.crypto.dom.DOMURIRefere
import javax.xml.crypto.dsig.Transform;
import javax.xml.crypto.dsig.XMLSignature;
import javax.xml.crypto.dsig.keyinfo.RetrievalMethod;
-import javax.xml.parsers.DocumentBuilder;
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Attr;
@@ -269,12 +268,10 @@ public final class DOMRetrievalMethod ex
public XMLStructure dereferenceAsXMLStructure(XMLCryptoContext context)
throws URIReferenceException
{
- DocumentBuilder db = null;
boolean secVal = Utils.secureValidation(context);
ApacheData data = (ApacheData)dereference(context);
try (InputStream is = new ByteArrayInputStream(data.getXMLSignatureInput().getBytes())) {
- db = XMLUtils.createDocumentBuilder(false, secVal);
- Document doc = db.parse(is);
+ Document doc = XMLUtils.read(is, false, secVal);
Element kiElem = doc.getDocumentElement();
if (kiElem.getLocalName().equals("X509Data")
&& XMLSignature.XMLNS.equals(kiElem.getNamespaceURI())) {
@@ -284,10 +281,6 @@ public final class DOMRetrievalMethod ex
}
} catch (Exception e) {
throw new URIReferenceException(e);
- } finally {
- if (db != null) {
- XMLUtils.repoolDocumentBuilder(db);
- }
}
}
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/Init.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/Init.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/Init.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/Init.java Tue Jun 25 16:49:48 2019
@@ -24,8 +24,6 @@ import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.List;
-import javax.xml.parsers.DocumentBuilder;
-
import org.apache.xml.security.algorithms.JCEMapper;
import org.apache.xml.security.algorithms.SignatureAlgorithm;
import org.apache.xml.security.c14n.Canonicalizer;
@@ -155,14 +153,7 @@ public class Init {
private static void fileInit(InputStream is) {
try {
/* read library configuration file */
- DocumentBuilder db = XMLUtils.createDocumentBuilder(false);
- Document doc;
- try {
- doc = db.parse(is);
- } finally {
- XMLUtils.repoolDocumentBuilder(db);
- db = null;
- }
+ Document doc = XMLUtils.read(is, false);
Node config = doc.getFirstChild();
for (; config != null; config = config.getNextSibling()) {
if ("Configuration".equals(config.getLocalName())) {
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java Tue Jun 25 16:49:48 2019
@@ -26,8 +26,6 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import javax.xml.parsers.DocumentBuilder;
-
import org.apache.xml.security.c14n.implementations.Canonicalizer11_OmitComments;
import org.apache.xml.security.c14n.implementations.Canonicalizer11_WithComments;
import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclOmitComments;
@@ -257,7 +255,6 @@ public class Canonicalizer {
InputSource in = new InputSource(bais);
// needs to validate for ID attribute normalization
- DocumentBuilder db = XMLUtils.createDocumentBuilder(true, secureValidation);
/*
* for some of the test vectors from the specification,
@@ -280,13 +277,8 @@ public class Canonicalizer {
* though the document type declaration is not retained in the
* canonical form.
*/
- db.setErrorHandler(new org.apache.xml.security.utils.IgnoreAllErrorHandler());
-
- try {
- document = db.parse(in);
- } finally {
- XMLUtils.repoolDocumentBuilder(db);
- }
+ document = XMLUtils.read(in, true, secureValidation,
+ new org.apache.xml.security.utils.IgnoreAllErrorHandler());
}
return this.canonicalizeSubtree(document);
}
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/CanonicalizerSpi.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/CanonicalizerSpi.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/CanonicalizerSpi.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/c14n/CanonicalizerSpi.java Tue Jun 25 16:49:48 2019
@@ -22,8 +22,6 @@ import java.io.ByteArrayInputStream;
import java.io.OutputStream;
import java.util.Set;
-import javax.xml.parsers.DocumentBuilder;
-
import org.apache.xml.security.utils.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -59,13 +57,7 @@ public abstract class CanonicalizerSpi {
try (java.io.InputStream bais = new ByteArrayInputStream(inputBytes)) {
InputSource in = new InputSource(bais);
- DocumentBuilder db = XMLUtils.createDocumentBuilder(false, secureValidation);
-
- try {
- document = db.parse(in);
- } finally {
- XMLUtils.repoolDocumentBuilder(db);
- }
+ document = XMLUtils.read(in, false, secureValidation);
}
return this.engineCanonicalizeSubTree(document);
}
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/encryption/DocumentSerializer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/encryption/DocumentSerializer.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/encryption/DocumentSerializer.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/encryption/DocumentSerializer.java Tue Jun 25 16:49:48 2019
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
-import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.xml.security.utils.XMLUtils;
@@ -70,10 +69,8 @@ public class DocumentSerializer extends
* @throws XMLEncryptionException
*/
private Node deserialize(Node ctx, InputSource inputSource) throws XMLEncryptionException {
- DocumentBuilder db = null;
try {
- db = XMLUtils.createDocumentBuilder(false, secureValidation);
- Document d = db.parse(inputSource);
+ Document d = XMLUtils.read(inputSource, false, secureValidation);
Document contextDocument = null;
if (Node.DOCUMENT_NODE == ctx.getNodeType()) {
@@ -98,10 +95,6 @@ public class DocumentSerializer extends
throw new XMLEncryptionException(pce);
} catch (IOException ioe) {
throw new XMLEncryptionException(ioe);
- } finally {
- if (db != null) {
- XMLUtils.repoolDocumentBuilder(db);
- }
}
}
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java Tue Jun 25 16:49:48 2019
@@ -27,7 +27,6 @@ import java.security.cert.X509Certificat
import java.util.HashMap;
import javax.crypto.SecretKey;
-import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.xml.security.keys.storage.StorageResolver;
@@ -271,10 +270,8 @@ public abstract class KeyResolverSpi {
* @throws KeyResolverException if something goes wrong
*/
protected static Element getDocFromBytes(byte[] bytes, boolean secureValidation) throws KeyResolverException {
- DocumentBuilder db = null;
try (InputStream is = new ByteArrayInputStream(bytes)) {
- db = XMLUtils.createDocumentBuilder(false, secureValidation);
- Document doc = db.parse(is);
+ Document doc = XMLUtils.read(is, false, secureValidation);
return doc.getDocumentElement();
} catch (SAXException ex) {
throw new KeyResolverException(ex);
@@ -282,10 +279,6 @@ public abstract class KeyResolverSpi {
throw new KeyResolverException(ex);
} catch (ParserConfigurationException ex) {
throw new KeyResolverException(ex);
- } finally {
- if (db != null) {
- XMLUtils.repoolDocumentBuilder(db);
- }
}
}
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/SignedInfo.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/SignedInfo.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/SignedInfo.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/SignedInfo.java Tue Jun 25 16:49:48 2019
@@ -211,16 +211,12 @@ public class SignedInfo extends Manifest
c14nizer.setSecureValidation(secureValidation);
byte[] c14nizedBytes = c14nizer.canonicalizeSubtree(element);
- javax.xml.parsers.DocumentBuilder db =
- XMLUtils.createDocumentBuilder(false, secureValidation);
try (InputStream is = new ByteArrayInputStream(c14nizedBytes)) {
- Document newdoc = db.parse(is);
+ Document newdoc = XMLUtils.read(is, false, secureValidation);
Node imported = element.getOwnerDocument().importNode(
newdoc.getDocumentElement(), true);
element.getParentNode().replaceChild(imported, element);
return (Element) imported;
- } finally {
- XMLUtils.repoolDocumentBuilder(db);
}
} catch (ParserConfigurationException ex) {
throw new XMLSecurityException(ex);
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/signature/XMLSignatureInput.java Tue Jun 25 16:49:48 2019
@@ -29,7 +29,6 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.xml.security.c14n.CanonicalizationException;
@@ -570,12 +569,10 @@ public class XMLSignatureInput {
void convertToNodes() throws CanonicalizationException,
ParserConfigurationException, IOException, SAXException {
- DocumentBuilder db = XMLUtils.createDocumentBuilder(false, secureValidation);
// select all nodes, also the comments.
try {
- db.setErrorHandler(new org.apache.xml.security.utils.IgnoreAllErrorHandler());
-
- Document doc = db.parse(this.getOctetStream());
+ Document doc = XMLUtils.read(this.getOctetStream(), false, secureValidation,
+ new org.apache.xml.security.utils.IgnoreAllErrorHandler());
this.subNode = doc;
} catch (SAXException ex) {
byte[] result = null;
@@ -589,11 +586,11 @@ public class XMLSignatureInput {
result = baos.toByteArray();
}
try (InputStream is = new ByteArrayInputStream(result)) {
- Document document = db.parse(is);
+ Document document = XMLUtils.read(is, false, secureValidation,
+ new org.apache.xml.security.utils.IgnoreAllErrorHandler());
this.subNode = document.getDocumentElement().getFirstChild().getFirstChild();
}
} finally {
- XMLUtils.repoolDocumentBuilder(db);
if (this.inputOctetStreamProxy != null) {
this.inputOctetStreamProxy.close();
}
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java Tue Jun 25 16:49:48 2019
@@ -143,7 +143,7 @@ public class TransformBase64Decode exten
//Exceptional case there is current not text case testing this(Before it was a
//a common case).
Document doc =
- XMLUtils.createDocumentBuilder(false, secureValidation).parse(input.getOctetStream());
+ XMLUtils.read(input.getOctetStream(), false, secureValidation);
Element rootNode = doc.getDocumentElement();
StringBuilder sb = new StringBuilder();
Modified: santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java?rev=1862078&r1=1862077&r2=1862078&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java (original)
+++ santuario/xml-security-java/branches/2.1.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java Tue Jun 25 16:49:48 2019
@@ -1118,6 +1118,11 @@ public final class XMLUtils {
return read(inputSource, validating, true, (EntityResolver)null);
}
+ public static Document read(InputSource inputSource, boolean validating, boolean disAllowDocTypeDeclarations)
+ throws ParserConfigurationException, SAXException, IOException {
+ return read(inputSource, validating, disAllowDocTypeDeclarations, (EntityResolver)null);
+ }
+
public static Document read(InputSource inputSource, boolean validating, boolean disAllowDocTypeDeclarations, EntityResolver resolver)
throws ParserConfigurationException, SAXException, IOException {
DocumentBuilder documentBuilder = createDocumentBuilder(validating, disAllowDocTypeDeclarations);