From 702441d7208c1f4ea4d5db424d68b4f68f6de985 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 21 Jul 2016 15:16:34 -0700 Subject: [PATCH] GUACAMOLE-5: Do not attempt to join a closed connection. --- .../auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java | 2 +- .../auth/jdbc/tunnel/ActiveConnectionRecord.java | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java index 2d5e1f884..d82563195 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java @@ -467,7 +467,7 @@ public abstract class AbstractGuacamoleTunnelService implements GuacamoleTunnelS // Verify that the connection ID is known String connectionID = activeConnection.getConnectionID(); - if (connectionID == null) + if (!activeConnection.isActive() || connectionID == null) throw new GuacamoleResourceNotFoundException("No existing connection to be joined."); // Build configuration from the sharing profile and the ID of diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java index f768f2378..16da6899b 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java @@ -36,8 +36,7 @@ import org.apache.guacamole.protocol.ConfiguredGuacamoleSocket; /** * A connection record implementation that describes an active connection. As * the associated connection has not yet ended, getEndDate() will always return - * null, and isActive() will always return true. The associated start date will - * be the time of this objects creation. + * null. The associated start date will be the time of this objects creation. * * @author Michael Jumper */ @@ -325,10 +324,7 @@ public class ActiveConnectionRecord implements ConnectionRecord { @Override public boolean isActive() { - - // Active connections are active by definition - return true; - + return tunnel != null && tunnel.isOpen(); } /**