GUACAMOLE-497: Remove usage of now-deprecated XMLReaderFactory.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/c6aa790b Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/c6aa790b Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/c6aa790b Branch: refs/heads/master Commit: c6aa790b41acb300360cd2d4b8b2d76a3727fe2c Parents: 29f838f Author: Michael Jumper <mjum...@apache.org> Authored: Thu Feb 1 15:28:59 2018 -0800 Committer: Michael Jumper <mjum...@apache.org> Committed: Thu Feb 1 21:21:05 2018 -0800 ---------------------------------------------------------------------- .../auth/file/FileAuthenticationProvider.java | 33 ++++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c6aa790b/guacamole/src/main/java/org/apache/guacamole/auth/file/FileAuthenticationProvider.java ---------------------------------------------------------------------- diff --git a/guacamole/src/main/java/org/apache/guacamole/auth/file/FileAuthenticationProvider.java b/guacamole/src/main/java/org/apache/guacamole/auth/file/FileAuthenticationProvider.java index 27d3411..4506c69 100644 --- a/guacamole/src/main/java/org/apache/guacamole/auth/file/FileAuthenticationProvider.java +++ b/guacamole/src/main/java/org/apache/guacamole/auth/file/FileAuthenticationProvider.java @@ -19,12 +19,12 @@ package org.apache.guacamole.auth.file; -import java.io.BufferedInputStream; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; -import java.io.InputStream; import java.util.Map; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.environment.Environment; import org.apache.guacamole.environment.LocalEnvironment; @@ -35,10 +35,7 @@ import org.apache.guacamole.properties.FileGuacamoleProperty; import org.apache.guacamole.protocol.GuacamoleConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.XMLReaderFactory; /** * Authenticates users against a static list of username/password pairs. @@ -151,6 +148,22 @@ public class FileAuthenticationProvider extends SimpleAuthenticationProvider { logger.debug("Reading user mapping file: \"{}\"", userMappingFile); + // Set up XML parser + SAXParser parser; + try { + parser = SAXParserFactory.newInstance().newSAXParser(); + } + catch (ParserConfigurationException e) { + logger.error("Unable to create XML parser for reading \"{}\": {}", USER_MAPPING_FILENAME, e.getMessage()); + logger.debug("An instance of SAXParser could not be created.", e); + return null; + } + catch (SAXException e) { + logger.error("Unable to create XML parser for reading \"{}\": {}", USER_MAPPING_FILENAME, e.getMessage()); + logger.debug("An instance of SAXParser could not be created.", e); + return null; + } + // Parse document try { @@ -162,14 +175,8 @@ public class FileAuthenticationProvider extends SimpleAuthenticationProvider { DocumentHandler contentHandler = new DocumentHandler( "user-mapping", userMappingHandler); - // Set up XML parser - XMLReader parser = XMLReaderFactory.createXMLReader(); - parser.setContentHandler(contentHandler); - // Read and parse file - InputStream input = new BufferedInputStream(new FileInputStream(userMappingFile)); - parser.parse(new InputSource(input)); - input.close(); + parser.parse(userMappingFile, contentHandler); // Store mod time and user mapping lastModified = userMappingFile.lastModified();