Package com.io7m.jxe.core
Class JXEHardenedDispatchingResolver
java.lang.Object
com.io7m.jxe.core.JXEHardenedDispatchingResolver
- All Implemented Interfaces:
EntityResolver
,EntityResolver2
A hardened entity resolver that can resolve resources from a set of
given schemas or from any descendant of a given directory. The resolver
prevents path traversal attacks by refusing to resolve resources outside
of the given directory.
-
Method Summary
Modifier and TypeMethodDescriptioncreate
(Optional<Path> in_base_directory, JXESchemaResolutionMappings in_schemas) Create a new resolver.getExternalSubset
(String name, String base_uri) resolveEntity
(String public_id, String system_id) resolveEntity
(String name, String public_id, String base_uri, String system_id)
-
Method Details
-
create
public static JXEHardenedDispatchingResolver create(Optional<Path> in_base_directory, JXESchemaResolutionMappings in_schemas) Create a new resolver. The resolver will resolve schemas from the given schema mappings, and will optionall resolve other file resources from the given base directory. If no base directory is provided, no resolution of resources from the filesystem will occur.- Parameters:
in_base_directory
- The base directory used to resolve resources, if anyin_schemas
- A set of schema mappings- Returns:
- A new resolver
-
getExternalSubset
- Specified by:
getExternalSubset
in interfaceEntityResolver2
- Throws:
SAXException
-
resolveEntity
public InputSource resolveEntity(String name, String public_id, String base_uri, String system_id) throws SAXException, IOException - Specified by:
resolveEntity
in interfaceEntityResolver2
- Throws:
SAXException
IOException
-
resolveEntity
- Specified by:
resolveEntity
in interfaceEntityResolver
-