GUACAMOLE-540: Clean up Credentials with new constructor.

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

Branch: refs/heads/staging/1.0.0
Commit: 52a3f454e6afacf3e527b09c7543f960f7e6247d
Parents: c725da0
Author: Nick Couchman <vn...@apache.org>
Authored: Fri Jun 15 17:22:36 2018 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Sat Jun 16 08:06:07 2018 -0400

----------------------------------------------------------------------
 .../auth/jdbc/user/RemoteAuthenticatedUser.java |  2 +-
 .../apache/guacamole/net/auth/Credentials.java  | 54 ++++++++++++++------
 .../guacamole/rest/auth/TokenRESTService.java   | 10 +---
 .../guacamole/rest/user/UserResource.java       |  7 +--
 4 files changed, 44 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/52a3f454/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
----------------------------------------------------------------------
diff --git 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
index 017a9c1..d68d9a9 100644
--- 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
+++ 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
@@ -42,7 +42,7 @@ public abstract class RemoteAuthenticatedUser implements 
AuthenticatedUser {
      * The host from which this user authenticated.
      */
     private final String remoteHost;
- 
+
     /**
      * Creates a new RemoteAuthenticatedUser, deriving the associated remote
      * host from the given credentials.

http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/52a3f454/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/Credentials.java
----------------------------------------------------------------------
diff --git 
a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/Credentials.java 
b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/Credentials.java
index 16cf917..2c3b89e 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/Credentials.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/Credentials.java
@@ -96,6 +96,45 @@ public class Credentials implements Serializable {
     private transient HttpSession session;
 
     /**
+     * Construct a Credentials object with the given username, password,
+     * and HTTP request.  The information is assigned to the various
+     * storage objects, and the remote hostname and address is parsed out
+     * of the request object.
+     * 
+     * @param username
+     *     The username that was provided for authentication.
+     * 
+     * @param password
+     *     The password that was provided for authentication.
+     * 
+     * @param request 
+     *     The HTTP request associated with the authentication
+     *     request.
+     */
+    public Credentials(String username, String password, HttpServletRequest 
request) {
+        this.username = username;
+        this.password = password;
+        this.request = request;
+        
+        // Use X-Forwarded-For to get remote address, if present and valid
+        String header = request.getHeader("X-Forwarded-For");
+        if (header != null) {
+            Matcher matcher = X_FORWARDED_FOR.matcher(header);
+            if (matcher.matches())
+                this.remoteAddress = matcher.group(1);
+        }
+        // Header not present, just use remote address
+        else {
+            this.remoteAddress = request.getRemoteAddr();
+        }
+        
+        this.remoteHostname = request.getRemoteHost();
+        
+        this.session = request.getSession(false);
+        
+    }
+    
+    /**
      * Returns the password associated with this set of credentials.
      * @return The password associated with this username/password pair, or
      *         null if no password has been set.
@@ -150,21 +189,6 @@ public class Credentials implements Serializable {
      */
     public void setRequest(HttpServletRequest request) {
         this.request = request;
-        
-        // Use X-Forwarded-For to get remote address, if present and valid
-        String header = request.getHeader("X-Forwarded-For");
-        if (header != null) {
-            Matcher matcher = X_FORWARDED_FOR.matcher(header);
-            if (matcher.matches())
-                this.remoteAddress = matcher.group(1);
-        }
-        // Header not present, just use remote address
-        else {
-            this.remoteAddress = request.getRemoteAddr();
-        }
-        
-        this.remoteHostname = request.getRemoteHost();
-        
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/52a3f454/guacamole/src/main/java/org/apache/guacamole/rest/auth/TokenRESTService.java
----------------------------------------------------------------------
diff --git 
a/guacamole/src/main/java/org/apache/guacamole/rest/auth/TokenRESTService.java 
b/guacamole/src/main/java/org/apache/guacamole/rest/auth/TokenRESTService.java
index fb1d929..e1ff66f 100644
--- 
a/guacamole/src/main/java/org/apache/guacamole/rest/auth/TokenRESTService.java
+++ 
b/guacamole/src/main/java/org/apache/guacamole/rest/auth/TokenRESTService.java
@@ -55,7 +55,7 @@ public class TokenRESTService {
      * Logger for this class.
      */
     private static final Logger logger = 
LoggerFactory.getLogger(TokenRESTService.class);
-    
+
     /**
      * Service for authenticating users and managing their Guacamole sessions.
      */
@@ -117,13 +117,7 @@ public class TokenRESTService {
         } // end Authorization header fallback
 
         // Build credentials
-        Credentials credentials = new Credentials();
-        credentials.setUsername(username);
-        credentials.setPassword(password);
-        credentials.setRequest(request);
-        credentials.setSession(request.getSession(false));
-
-        return credentials;
+        return new Credentials(username, password, request);
 
     }
 

http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/52a3f454/guacamole/src/main/java/org/apache/guacamole/rest/user/UserResource.java
----------------------------------------------------------------------
diff --git 
a/guacamole/src/main/java/org/apache/guacamole/rest/user/UserResource.java 
b/guacamole/src/main/java/org/apache/guacamole/rest/user/UserResource.java
index 8f3abfe..d7d4bdc 100644
--- a/guacamole/src/main/java/org/apache/guacamole/rest/user/UserResource.java
+++ b/guacamole/src/main/java/org/apache/guacamole/rest/user/UserResource.java
@@ -155,11 +155,8 @@ public class UserResource
             @Context HttpServletRequest request) throws GuacamoleException {
 
         // Build credentials
-        Credentials credentials = new Credentials();
-        credentials.setUsername(user.getIdentifier());
-        credentials.setPassword(userPasswordUpdate.getOldPassword());
-        credentials.setRequest(request);
-        credentials.setSession(request.getSession(false));
+        Credentials credentials = new Credentials(user.getIdentifier(),
+                userPasswordUpdate.getOldPassword(), request);
 
         // Verify that the old password was correct
         try {

Reply via email to