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();

Reply via email to