GUACAMOLE-38: Rearrange logic in QCParser class.

Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/2a9c7fe0
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/2a9c7fe0
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/2a9c7fe0

Branch: refs/heads/staging/1.0.0
Commit: 2a9c7fe0b7dee1a409a96f32b6e155c63c62e917
Parents: 7df88cd
Author: Nick Couchman <vn...@apache.org>
Authored: Wed May 9 08:40:55 2018 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Fri Jun 1 13:40:52 2018 -0400

----------------------------------------------------------------------
 .../auth/quickconnect/utility/QCParser.java     | 59 ++++++++++----------
 1 file changed, 29 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/2a9c7fe0/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java
----------------------------------------------------------------------
diff --git 
a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java
 
b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java
index 1156ca5..9601e1c 100644
--- 
a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java
+++ 
b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java
@@ -85,6 +85,7 @@ public class QCParser {
     public static GuacamoleConfiguration getConfiguration(String uri)
             throws GuacamoleException {
 
+        // Parse the URI object from provided string.
         URI qcUri;
         try {
             qcUri = new URI(uri);
@@ -100,22 +101,32 @@ public class QCParser {
         String userInfo = qcUri.getUserInfo();
         String query = qcUri.getQuery();
 
-        String username = null;
-        String password = null;
-        Map<String, String> queryParams = null;
+        // Generate a new GuacamoleConfiguration
+        GuacamoleConfiguration qcConfig = new GuacamoleConfiguration();
+
+        // Check for provided protocol or use default
+        if (protocol != null && !protocol.isEmpty())
+            qcConfig.setProtocol(protocol);
+        else
+            qcConfig.setProtocol(DEFAULT_URI_PROTOCOL);
 
-        // Assign default protocol if one is not found in the URI.
-        if (protocol == null || protocol.isEmpty())
-            protocol = DEFAULT_URI_PROTOCOL;
+        // Check for provided port number
+        if (port > 0)
+            qcConfig.setParameter("port", Integer.toString(port));
 
-        // Assign default host if one is not found in the URI.
-        if (host == null || host.isEmpty())
-            host = DEFAULT_URI_HOST;
+        // Check for provided host or use default
+        if (host != null && !host.isEmpty())
+            qcConfig.setParameter("hostname", host);
+        else
+            qcConfig.setParameter("hostname", DEFAULT_URI_HOST);
 
         // Look for extra query parameters and parse them out.
         if (query != null && !query.isEmpty()) {
             try {
-                queryParams = parseQueryString(query);
+                Map<String, String> queryParams = parseQueryString(query);
+                if (queryParams != null)
+                    for (Map.Entry<String, String> entry: 
queryParams.entrySet())
+                        qcConfig.setParameter(entry.getKey(), 
entry.getValue());
             }
             catch (UnsupportedEncodingException e) {
                 throw new GuacamoleServerException("Unexpected lack of UTF-8 
encoding support.", e);
@@ -127,29 +138,17 @@ public class QCParser {
 
             Matcher userinfoMatcher = userinfoPattern.matcher(userInfo);
             if (userinfoMatcher.matches()) {
-                username = userinfoMatcher.group(USERNAME_GROUP);
-                password = userinfoMatcher.group(PASSWORD_GROUP);
-            }
-
-        }
-
-        // Generate a new GuacamoleConfiguration and set parameters.
-        GuacamoleConfiguration qcConfig = new GuacamoleConfiguration();
-        qcConfig.setProtocol(protocol);
-        qcConfig.setParameter("hostname",host);
-
-        if (port > 0)
-            qcConfig.setParameter("port", Integer.toString(port));
+                String username = userinfoMatcher.group(USERNAME_GROUP);
+                String password = userinfoMatcher.group(PASSWORD_GROUP);
 
-        if (username != null && !username.isEmpty())
-            qcConfig.setParameter("username", username);
+                if (username != null && !username.isEmpty())
+                    qcConfig.setParameter("username", username);
 
-        if (password != null && !password.isEmpty())
-            qcConfig.setParameter("password", password);
+                if (password != null && !password.isEmpty())
+                    qcConfig.setParameter("password", password);
+            }
 
-        if (queryParams != null)
-            for (Map.Entry<String, String> entry : queryParams.entrySet())
-                qcConfig.setParameter(entry.getKey(), entry.getValue());
+        }
 
         return qcConfig;
         

Reply via email to