[utilities COMMIT] /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java

noreply at shibboleth.net noreply at shibboleth.net
Wed Apr 16 14:24:06 EDT 2014


Author: scantor
Date: Wed Apr 16 14:24:05 2014
New Revision: 557

URL: http://svn.shibboleth.net/view/utilities?rev=557&view=rev
Log:
More advanced default feature/property setting to handle Java 8 defaults.

Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java

Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java?rev=557&r1=556&r2=557&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java Wed Apr 16 14:24:05 2014
@@ -251,7 +251,18 @@
         final SchemaFactory schemaFactory = schemaLang.getSchemaFactory();
         
         if (features.isEmpty()) {
+            log.info("No SchemaFactory features set, setting FEATURE_SECURE_PROCESSING by default");
             schemaFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+            if (resourceResolver != null && !(resourceResolver instanceof ClasspathResolver)) {
+                log.warn("Custom LSResourceResolver supplied, may interact badly with secure processing mode");
+            } else {
+                try {
+                    schemaFactory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "all");
+                    log.info("Allowing schema and DTD access to non-remote resources (LSResourceResolver unset)");
+                } catch (final SAXException e) {
+                    log.info("Unable to set ACCESS_EXTERNAL_SCHEMA property, classpath schema lookup might fail");
+                }
+            }
         } else {
             for (final Map.Entry<String, Boolean> entry : features.entrySet()) {
                 schemaFactory.setFeature(entry.getKey(), entry.getValue());



More information about the commits mailing list