diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml index 40ca67bee..a5f808c53 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml @@ -37,6 +37,14 @@ + + + javax.servlet + servlet-api + 2.5 + provided + + org.glyptodon.guacamole diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/connection/ModeledConnectionRecord.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/connection/ModeledConnectionRecord.java index f6701da2d..d00d19d13 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/connection/ModeledConnectionRecord.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/connection/ModeledConnectionRecord.java @@ -69,8 +69,7 @@ public class ModeledConnectionRecord implements ConnectionRecord { @Override public String getRemoteHost() { - // STUB - return "STUB"; + return null; } @Override diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java index a4c50e21a..878e29d25 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java @@ -176,8 +176,7 @@ public class ActiveConnectionRecord implements ConnectionRecord { @Override public String getRemoteHost() { - // STUB - return "STUB"; + return user.getRemoteHost(); } @Override diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/user/AuthenticatedUser.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/user/AuthenticatedUser.java index 7b01d4598..f778bbb44 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/user/AuthenticatedUser.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/user/AuthenticatedUser.java @@ -22,6 +22,7 @@ package org.glyptodon.guacamole.auth.jdbc.user; +import javax.servlet.http.HttpServletRequest; import org.glyptodon.guacamole.net.auth.Credentials; /** @@ -41,6 +42,27 @@ public class AuthenticatedUser { */ private final Credentials credentials; + /** + * The host from which this user authenticated. + */ + private final String remoteHost; + + /** + * Derives the remote host of the authenticating user from the given + * credentials object. + * + * @param credentials + * The credentials to derive the remote host from. + * + * @return + * The remote host from which the user with the given credentials is + * authenticating. + */ + private static String getRemoteHost(Credentials credentials) { + HttpServletRequest request = credentials.getRequest(); + return request.getRemoteAddr(); + } + /** * Creates a new AuthenticatedUser associating the given user with their * corresponding credentials. @@ -54,6 +76,7 @@ public class AuthenticatedUser { public AuthenticatedUser(ModeledUser user, Credentials credentials) { this.user = user; this.credentials = credentials; + this.remoteHost = getRemoteHost(credentials); } /** @@ -76,4 +99,14 @@ public class AuthenticatedUser { return credentials; } + /** + * Returns the host from which this user authenticated. + * + * @return + * The host from which this user authenticated. + */ + public String getRemoteHost() { + return remoteHost; + } + }