[utilities COMMIT] in /java-support/trunk/src: main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.ja...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Feb 14 21:06:17 EST 2014
Author: putmanb
Date: Fri Feb 14 21:06:17 2014
New Revision: 531
URL: http://svn.shibboleth.net/view/utilities?rev=531&view=rev
Log:
JSPT-38: Port forward XEE changes from v2 JXT-105.
Modified:
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/xml/BasicParserPoolTest.java
Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java?rev=531&r1=530&r2=531&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java Fri Feb 14 21:06:17 2014
@@ -30,6 +30,7 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
+import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
@@ -132,8 +133,8 @@
builderPool = new Stack<SoftReference<DocumentBuilder>>();
builderAttributes = Collections.emptyMap();
coalescing = true;
- expandEntityReferences = true;
- builderFeatures = Collections.emptyMap();
+ expandEntityReferences = false;
+ builderFeatures = buildDefaultFeatures();
ignoreComments = true;
ignoreElementContentWhitespace = true;
namespaceAware = true;
@@ -584,6 +585,28 @@
ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
}
+
+ /**
+ * Build the default set of parser features to use.
+ *
+ * <p>These will be overriden by a call to {@link #setBuilderFeatures(Map)}.</p>
+ *
+ * <p>
+ * The default features set are:
+ * <ul>
+ * <li>{@link XMLConstants#FEATURE_SECURE_PROCESSING} = true</li>
+ * <li>http://apache.org/xml/features/disallow-doctype-decl = true</li>
+ * </ul>
+ * </p>
+ *
+ * @return the default features map
+ */
+ protected Map<String, Boolean> buildDefaultFeatures() {
+ HashMap<String, Boolean> features = new HashMap<String, Boolean>();
+ features.put(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+ features.put("http://apache.org/xml/features/disallow-doctype-decl", true);
+ return features;
+ }
/** A proxy that prevents the manages document builders retrieved from the parser pool. */
protected class DocumentBuilderProxy extends DocumentBuilder {
Modified: java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/xml/BasicParserPoolTest.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/xml/BasicParserPoolTest.java?rev=531&r1=530&r2=531&view=diff
==============================================================================
--- java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/xml/BasicParserPoolTest.java (original)
+++ java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/xml/BasicParserPoolTest.java Fri Feb 14 21:06:17 2014
@@ -146,7 +146,8 @@
basicParserPool.initialize();
Assert.assertTrue(basicParserPool.getBuilderAttributes().isEmpty(), "Checking attributes");
- Assert.assertTrue(basicParserPool.getBuilderFeatures().isEmpty(), "Checking features");
+ // This is false because we now default in certain security-related features
+ Assert.assertFalse(basicParserPool.getBuilderFeatures().isEmpty(), "Checking features");
Assert.assertFalse(basicParserPool.isCoalescing(), "pool Coalescing");
More information about the commits
mailing list