This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 2cb11b1  Make sure secure processing is enabled on all 
DocumentBuilderFactory instances
2cb11b1 is described below

commit 2cb11b19660909971e7cd475bd358c6830773e58
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Wed Nov 21 18:09:30 2018 +0000

    Make sure secure processing is enabled on all DocumentBuilderFactory 
instances
---
 .../src/main/java/org/apache/cxf/aegis/type/XMLTypeCreator.java    | 1 +
 .../org/apache/cxf/tools/common/dom/ExtendedDocumentBuilder.java   | 1 +
 .../apache/cxf/tools/common/toolspec/parser/CommandLineParser.java | 3 +++
 .../cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java     | 7 ++++++-
 .../org/apache/cxf/tools/validator/internal/SchemaValidator.java   | 1 +
 .../org/apache/cxf/tools/validator/internal/ValidatorUtil.java     | 1 +
 6 files changed, 13 insertions(+), 1 deletion(-)

diff --git 
a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/XMLTypeCreator.java
 
b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/XMLTypeCreator.java
index a79724a..11ccbed 100644
--- 
a/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/XMLTypeCreator.java
+++ 
b/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/XMLTypeCreator.java
@@ -117,6 +117,7 @@ public class XMLTypeCreator extends AbstractTypeCreator {
         AEGIS_DOCUMENT_BUILDER_FACTORY.setNamespaceAware(true);
         try {
             
AEGIS_DOCUMENT_BUILDER_FACTORY.setFeature(javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING,
 true);
+            
AEGIS_DOCUMENT_BUILDER_FACTORY.setFeature("http://apache.org/xml/features/disallow-doctype-decl";,
 true);
         } catch (javax.xml.parsers.ParserConfigurationException ex) {
             // ignore
         }
diff --git 
a/tools/common/src/main/java/org/apache/cxf/tools/common/dom/ExtendedDocumentBuilder.java
 
b/tools/common/src/main/java/org/apache/cxf/tools/common/dom/ExtendedDocumentBuilder.java
index 9531efb..747acf1 100644
--- 
a/tools/common/src/main/java/org/apache/cxf/tools/common/dom/ExtendedDocumentBuilder.java
+++ 
b/tools/common/src/main/java/org/apache/cxf/tools/common/dom/ExtendedDocumentBuilder.java
@@ -74,6 +74,7 @@ public class ExtendedDocumentBuilder {
                 parserFactory = DocumentBuilderFactory.newInstance();
                 try {
                     
parserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
+                    
parserFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl";,
 true);
                 } catch (ParserConfigurationException e) {
                     //old version, not supported.
                 }
diff --git 
a/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/CommandLineParser.java
 
b/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/CommandLineParser.java
index ef01b55..588c616 100644
--- 
a/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/CommandLineParser.java
+++ 
b/tools/common/src/main/java/org/apache/cxf/tools/common/toolspec/parser/CommandLineParser.java
@@ -29,6 +29,7 @@ import java.util.StringTokenizer;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
@@ -96,6 +97,8 @@ public class CommandLineParser {
         try {
             DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
             factory.setNamespaceAware(true);
+            factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
Boolean.TRUE);
+            
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl";, 
true);
             resultDoc = factory.newDocumentBuilder().newDocument();
         } catch (Exception ex) {
             LOG.log(Level.SEVERE, "FAIL_CREATE_DOM_MSG");
diff --git 
a/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
 
b/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
index 4dae488..48a27b9 100644
--- 
a/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
+++ 
b/tools/corba/src/main/java/org/apache/cxf/tools/corba/processors/idl/ObjectReferenceVisitor.java
@@ -25,6 +25,7 @@ import java.util.List;
 
 import javax.wsdl.Binding;
 import javax.wsdl.Definition;
+import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -271,7 +272,11 @@ public class ObjectReferenceVisitor extends VisitorBase {
             XmlSchemaAnnotation annotation = new XmlSchemaAnnotation();
             XmlSchemaAppInfo appInfo = new XmlSchemaAppInfo();
             try {
-                DocumentBuilder db = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
+                DocumentBuilderFactory dbf = 
DocumentBuilderFactory.newInstance();
+                dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
Boolean.TRUE);
+                
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl";, true);
+
+                DocumentBuilder db = dbf.newDocumentBuilder();
                 Document doc = db.newDocument();
                 Element el = doc.createElement("appinfo");
                 el.setTextContent("corba:binding=" + 
bindingName.getLocalPart());
diff --git 
a/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/SchemaValidator.java
 
b/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/SchemaValidator.java
index f2b52de..c6d5148 100644
--- 
a/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/SchemaValidator.java
+++ 
b/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/SchemaValidator.java
@@ -108,6 +108,7 @@ public class SchemaValidator extends 
AbstractDefinitionValidator {
         try {
             docFactory.setNamespaceAware(true);
             docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
Boolean.TRUE);
+            
docFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl";, 
true);
             docBuilder = docFactory.newDocumentBuilder();
         } catch (ParserConfigurationException e) {
             throw new ToolException(e);
diff --git 
a/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidatorUtil.java
 
b/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidatorUtil.java
index 2313de9..0c8761e 100644
--- 
a/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidatorUtil.java
+++ 
b/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/ValidatorUtil.java
@@ -148,6 +148,7 @@ public final class ValidatorUtil {
             DocumentBuilderFactory docFactory = 
DocumentBuilderFactory.newInstance();
             docFactory.setNamespaceAware(true);
             docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, 
Boolean.TRUE);
+            
docFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl";, 
true);
             docBuilder = docFactory.newDocumentBuilder();
         } catch (ParserConfigurationException e) {
             throw new ToolException(e);

Reply via email to