/* (c) 2014 - 2015 Open Source Geospatial Foundation - all rights reserved
* (c) 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.util;
import org.geoserver.config.GeoServer;
import org.geotools.xml.PreventLocalEntityResolver;
import org.xml.sax.EntityResolver;
/**
* Creates an EntityResolver using geoserver configuration settings.
*
* @author Davide Savazzi - geo-solutions.it
*/
public class EntityResolverProvider {
/**
* A entity resolver provider that always disabled entity resolution
*/
public static final EntityResolverProvider RESOLVE_DISABLED_PROVIDER = new EntityResolverProvider(
null);
private GeoServer geoServer;
public EntityResolverProvider(GeoServer geoServer) {
this.geoServer = geoServer;
}
public EntityResolver getEntityResolver() {
if (geoServer != null) {
Boolean externalEntitiesEnabled = geoServer.getGlobal().isXmlExternalEntitiesEnabled();
if (externalEntitiesEnabled != null && externalEntitiesEnabled.booleanValue()) {
// XML parser will try to resolve entities
return null;
}
}
// default behaviour: entities disabled
return PreventLocalEntityResolver.INSTANCE;
}
}