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);