diff --git a/geowebcache/distributed/pom.xml b/geowebcache/distributed/pom.xml index b64169a71..def0a1921 100644 --- a/geowebcache/distributed/pom.xml +++ b/geowebcache/distributed/pom.xml @@ -29,6 +29,11 @@ gwc-core ${project.version} + + org.geotools + gt-xml + ${gt.version} + junit junit diff --git a/geowebcache/distributed/src/main/java/org/geowebcache/storage/blobstore/memory/distributed/HazelcastLoader.java b/geowebcache/distributed/src/main/java/org/geowebcache/storage/blobstore/memory/distributed/HazelcastLoader.java index f20246cff..36f6e855a 100644 --- a/geowebcache/distributed/src/main/java/org/geowebcache/storage/blobstore/memory/distributed/HazelcastLoader.java +++ b/geowebcache/distributed/src/main/java/org/geowebcache/storage/blobstore/memory/distributed/HazelcastLoader.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import org.apache.commons.io.filefilter.NameFileFilter; import org.geotools.util.logging.Logging; +import org.geotools.xml.XMLUtils; import org.springframework.beans.factory.InitializingBean; /** @@ -54,6 +55,18 @@ public class HazelcastLoader implements InitializingBean { /** Hazelcast instance to pass to the {@link HazelcastCacheProvider} class */ private HazelcastInstance instance; + // Disable Hazelcast's XXE protection if the XML libraries don't support JAXP 1.5 + static { + if (System.getProperty("hazelcast.ignoreXxeProtectionFailures") == null) { + try { + XMLUtils.checkSupportForJAXP15Properties(); + } catch (IllegalStateException e) { + LOGGER.warning("Disabling Hazelcast XXE protection because " + e.getMessage()); + System.setProperty("hazelcast.ignoreXxeProtectionFailures", "true"); + } + } + } + @Override public void afterPropertiesSet() throws Exception { if (instance == null) { diff --git a/geowebcache/pom.xml b/geowebcache/pom.xml index 9952b1f85..3623984b0 100644 --- a/geowebcache/pom.xml +++ b/geowebcache/pom.xml @@ -76,7 +76,7 @@ 64M 1.4.7 - 5.3.1 + 5.3.6 2.8.1 apply false