GUACAMOLE-5: Use ActiveConnectionRecord as the basis for sharing. 
TrackedActiveConnection is really only meant for interchange via the 
ActiveConnection Directory.

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

Branch: refs/heads/master
Commit: b201eac61707cff57dda4cb5992401757ac0887d
Parents: 16fce29
Author: Michael Jumper <[email protected]>
Authored: Sun Jul 24 14:34:22 2016 -0700
Committer: Michael Jumper <[email protected]>
Committed: Sun Jul 24 19:51:17 2016 -0700

----------------------------------------------------------------------
 .../TrackedActiveConnection.java                | 30 ++++++--------------
 .../jdbc/sharing/ConnectionSharingService.java  |  4 +--
 .../sharing/SharedConnectionDefinition.java     | 12 ++++----
 .../jdbc/tunnel/ActiveConnectionRecord.java     |  3 +-
 4 files changed, 17 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/b201eac6/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/TrackedActiveConnection.java
----------------------------------------------------------------------
diff --git 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/TrackedActiveConnection.java
 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/TrackedActiveConnection.java
index 6c2e4d5..29243f4 100644
--- 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/TrackedActiveConnection.java
+++ 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/TrackedActiveConnection.java
@@ -51,6 +51,12 @@ public class TrackedActiveConnection extends 
RestrictedObject implements ActiveC
     private String identifier;
 
     /**
+     * The actual connection record from which this ActiveConnection derives 
its
+     * data.
+     */
+    private ActiveConnectionRecord connectionRecord;
+
+    /**
      * The connection being actively used or shared.
      */
     private ModeledConnection connection;
@@ -76,13 +82,6 @@ public class TrackedActiveConnection extends 
RestrictedObject implements ActiveC
     private String username;
 
     /**
-     * The connection ID of the connection as determined by guacd, not to be
-     * confused with the connection identifier determined by the database. This
-     * is the ID that must be supplied to guacd if joining this connection.
-     */
-    private String connectionID;
-
-    /**
      * The underlying GuacamoleTunnel.
      */
     private GuacamoleTunnel tunnel;
@@ -111,10 +110,10 @@ public class TrackedActiveConnection extends 
RestrictedObject implements ActiveC
             boolean includeSensitiveInformation) {
 
         super.init(currentUser);
+        this.connectionRecord = activeConnectionRecord;
         
         // Copy all non-sensitive data from given record
         this.connection               = activeConnectionRecord.getConnection();
-        this.connectionID             = 
activeConnectionRecord.getConnectionID();
         this.sharingProfileIdentifier = 
activeConnectionRecord.getSharingProfileIdentifier();
         this.identifier               = 
activeConnectionRecord.getUUID().toString();
         this.startDate                = activeConnectionRecord.getStartDate();
@@ -150,19 +149,6 @@ public class TrackedActiveConnection extends 
RestrictedObject implements ActiveC
         return connection;
     }
 
-    /**
-     * Returns the connection ID of the in-progress connection as determined by
-     * guacd, not to be confused with the connection identifier determined by
-     * the database. This is the ID that must be supplied to guacd if joining
-     * this connection.
-     *
-     * @return
-     *     The ID of the in-progress connection, as determined by guacd.
-     */
-    public String getConnectionID() {
-        return connectionID;
-    }
-
     @Override
     public String getConnectionIdentifier() {
         return connection.getIdentifier();
@@ -189,7 +175,7 @@ public class TrackedActiveConnection extends 
RestrictedObject implements ActiveC
     public UserCredentials getSharingCredentials(String identifier)
             throws GuacamoleException {
         return sharingService.generateTemporaryCredentials(getCurrentUser(),
-                this, identifier);
+                connectionRecord, identifier);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/b201eac6/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/ConnectionSharingService.java
----------------------------------------------------------------------
diff --git 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/ConnectionSharingService.java
 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/ConnectionSharingService.java
index e05417a..68dadb7 100644
--- 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/ConnectionSharingService.java
+++ 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/ConnectionSharingService.java
@@ -25,9 +25,9 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.guacamole.auth.jdbc.user.AuthenticatedUser;
 import org.apache.guacamole.GuacamoleException;
 import org.apache.guacamole.GuacamoleSecurityException;
-import org.apache.guacamole.auth.jdbc.activeconnection.TrackedActiveConnection;
 import org.apache.guacamole.auth.jdbc.sharingprofile.ModeledSharingProfile;
 import org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileService;
+import org.apache.guacamole.auth.jdbc.tunnel.ActiveConnectionRecord;
 import org.apache.guacamole.form.Field;
 import org.apache.guacamole.net.auth.AuthenticationProvider;
 import org.apache.guacamole.net.auth.Credentials;
@@ -98,7 +98,7 @@ public class ConnectionSharingService {
      *     If permission to share the given connection is denied.
      */
     public UserCredentials generateTemporaryCredentials(AuthenticatedUser user,
-            TrackedActiveConnection activeConnection,
+            ActiveConnectionRecord activeConnection,
             String sharingProfileIdentifier) throws GuacamoleException {
 
         // Pull sharing profile (verifying access)

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/b201eac6/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/SharedConnectionDefinition.java
----------------------------------------------------------------------
diff --git 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/SharedConnectionDefinition.java
 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/SharedConnectionDefinition.java
index 7e7566b..e971bff 100644
--- 
a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/SharedConnectionDefinition.java
+++ 
b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/SharedConnectionDefinition.java
@@ -19,8 +19,8 @@
 
 package org.apache.guacamole.auth.jdbc.sharing;
 
-import org.apache.guacamole.auth.jdbc.activeconnection.TrackedActiveConnection;
 import org.apache.guacamole.auth.jdbc.sharingprofile.ModeledSharingProfile;
+import org.apache.guacamole.auth.jdbc.tunnel.ActiveConnectionRecord;
 
 /**
  * Defines the semantics/restrictions of a shared connection by associating an
@@ -35,7 +35,7 @@ public class SharedConnectionDefinition {
     /**
      * The active connection being shared.
      */
-    private final TrackedActiveConnection activeConnection;
+    private final ActiveConnectionRecord activeConnection;
 
     /**
      * The sharing profile which dictates the level of access provided to a 
user
@@ -63,7 +63,7 @@ public class SharedConnectionDefinition {
      * @param shareKey
      *     The unique key with which a user may access the shared connection.
      */
-    public SharedConnectionDefinition(TrackedActiveConnection activeConnection,
+    public SharedConnectionDefinition(ActiveConnectionRecord activeConnection,
             ModeledSharingProfile sharingProfile, String shareKey) {
         this.activeConnection = activeConnection;
         this.sharingProfile = sharingProfile;
@@ -71,13 +71,13 @@ public class SharedConnectionDefinition {
     }
 
     /**
-     * Returns the TrackedActiveConnection of the actual in-progress connection
+     * Returns the ActiveConnectionRecord of the actual in-progress connection
      * being shared.
      *
      * @return
-     *     The TrackedActiveConnection being shared.
+     *     The ActiveConnectionRecord being shared.
      */
-    public TrackedActiveConnection getActiveConnection() {
+    public ActiveConnectionRecord getActiveConnection() {
         return activeConnection;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/b201eac6/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/ActiveConnectionRecord.java
----------------------------------------------------------------------
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 16da689..2a3ea4f 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
@@ -21,7 +21,6 @@ package org.apache.guacamole.auth.jdbc.tunnel;
 
 import java.util.Date;
 import java.util.UUID;
-import org.apache.guacamole.auth.jdbc.activeconnection.TrackedActiveConnection;
 import org.apache.guacamole.auth.jdbc.connection.ModeledConnection;
 import org.apache.guacamole.auth.jdbc.connectiongroup.ModeledConnectionGroup;
 import org.apache.guacamole.auth.jdbc.sharingprofile.ModeledSharingProfile;
@@ -184,7 +183,7 @@ public class ActiveConnectionRecord implements 
ConnectionRecord {
      *     shared connection, this value may NOT be null.
      */
     public ActiveConnectionRecord(RemoteAuthenticatedUser user,
-            TrackedActiveConnection activeConnection,
+            ActiveConnectionRecord activeConnection,
             ModeledSharingProfile sharingProfile) {
         this(user, null, activeConnection.getConnection(), sharingProfile);
         this.connectionID = activeConnection.getConnectionID();

Reply via email to