garydgregory commented on code in PR #647:
URL: 
https://github.com/apache/commons-configuration/pull/647#discussion_r3943983596


##########
src/main/java/org/apache/commons/configuration2/XMLConfiguration.java:
##########
@@ -693,12 +695,26 @@ protected DocumentBuilder createDocumentBuilder() throws 
ParserConfigurationExce
         if (getDocumentBuilder() != null) {
             return getDocumentBuilder();
         }
-        final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
+        final DocumentBuilderFactory factory = 
SecureDocumentBuilderFactory.newInstance();
         if (isValidating()) {
             factory.setValidating(true);
             if (isSchemaValidation()) {
                 factory.setNamespaceAware(true);
                 factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
+                try {
+                    // Due to a bug, the JDK fails to mark schema documents 
supplied by an entity resolver as resolver-created,
+                    // so the accessExternalSchema check is applied to them 
and denies access:
+                    //
+                    // - Old JDK 8 versions never mark them.
+                    // - Newer JDK 8 and later versions only fail to mark 
documents supplied by an EntityResolver2.
+                    //
+                    // Allowing all protocols only stops that check from 
refusing the documents returned by the resolver:
+                    // the parser never retrieves a schema itself, because the 
Commons XML ignore-all resolver floor
+                    // resolves every lookup the caller-supplied resolver 
leaves unresolved to empty content.
+                    factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_SCHEMA, 
"all");

Review Comment:
   @ppkarwasz 
   Isn't this handled by the library now?
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to