Repository: cayenne
Updated Branches:
  refs/heads/STABLE-3.1 1e9c4837d -> bf01e60ec


Disable XML external entities


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/5714108e
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/5714108e
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/5714108e

Branch: refs/heads/STABLE-3.1
Commit: 5714108e8a4dabbc89957f562ad46035064ef731
Parents: 1e9c483
Author: Nikita Timofeev <stari...@gmail.com>
Authored: Tue Jul 10 17:21:11 2018 +0300
Committer: Nikita Timofeev <stari...@gmail.com>
Committed: Tue Jul 10 17:21:11 2018 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/cayenne/util/Util.java      |  3 +++
 .../src/main/java/org/apache/cayenne/xml/XMLUtil.java    | 11 +++++++++++
 .../org/apache/cayenne/project/unit/Project2Case.java    | 11 +++++++++++
 3 files changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5714108e/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
----------------------------------------------------------------------
diff --git 
a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
 
b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
index f926430..429258c 100644
--- 
a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
+++ 
b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
@@ -402,6 +402,9 @@ public class Util {
 
         // Create a JAXP SAXParser
         SAXParser saxParser = spf.newSAXParser();
+        spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl";, 
true);
+        
spf.setFeature("http://xml.org/sax/features/external-general-entities";, false);
+        
spf.setFeature("http://xml.org/sax/features/external-parameter-entities";, 
false);
 
         // Get the encapsulated SAX XMLReader
         XMLReader reader = saxParser.getXMLReader();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5714108e/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/xml/XMLUtil.java
----------------------------------------------------------------------
diff --git 
a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/xml/XMLUtil.java
 
b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/xml/XMLUtil.java
index 4982d3e..8dcd4b9 100644
--- 
a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/xml/XMLUtil.java
+++ 
b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/xml/XMLUtil.java
@@ -59,6 +59,17 @@ class XMLUtil {
     static DocumentBuilder newBuilder() throws CayenneRuntimeException {
         if (sharedFactory == null) {
             sharedFactory = DocumentBuilderFactory.newInstance();
+            sharedFactory.setNamespaceAware(false);
+            sharedFactory.setExpandEntityReferences(false);
+            sharedFactory.setXIncludeAware(false);
+            try {
+                
sharedFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl";,
 true);
+                
sharedFactory.setFeature("http://xml.org/sax/features/external-general-entities";,
 false);
+                
sharedFactory.setFeature("http://xml.org/sax/features/external-parameter-entities";,
 false);
+                
sharedFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd";,
 false);
+            } catch (ParserConfigurationException ex) {
+                throw new CayenneRuntimeException("Unable to configure 
DocumentBuilderFactory", ex);
+            }
         }
 
         try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/5714108e/framework/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java
----------------------------------------------------------------------
diff --git 
a/framework/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java
 
b/framework/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java
index 4252b18..07f122d 100644
--- 
a/framework/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java
+++ 
b/framework/cayenne-project/src/test/java/org/apache/cayenne/project/unit/Project2Case.java
@@ -42,6 +42,17 @@ public class Project2Case extends TestCase {
      */
     protected Document toDOMTree(File file) {
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(false);
+        dbf.setExpandEntityReferences(false);
+        dbf.setXIncludeAware(false);
+        try {
+            
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl";, true);
+            
dbf.setFeature("http://xml.org/sax/features/external-general-entities";, false);
+            
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities";, 
false);
+            
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd";,
 false);
+        } catch (ParserConfigurationException ex) {
+            throw new RuntimeException("Unable to configure 
DocumentBuilderFactory", ex);
+        }
         DocumentBuilder domParser;
         try {
             domParser = dbf.newDocumentBuilder();

Reply via email to