You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2017/09/27 22:16:23 UTC

[3/7] incubator-guacamole-client git commit: GUACAMOLE-394: Add API support for user login/logout records.

GUACAMOLE-394: Add API support for user login/logout records.


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/5340f553
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/5340f553
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/5340f553

Branch: refs/heads/master
Commit: 5340f553616108283f399a811dc1eace14aa92d2
Parents: 26122eb
Author: Michael Jumper <mj...@apache.org>
Authored: Sat Sep 9 13:43:49 2017 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Mon Sep 25 12:48:37 2017 -0700

----------------------------------------------------------------------
 .../jdbc/sharing/user/SharedUserContext.java    |  7 ++++
 .../auth/jdbc/user/ModeledUserContext.java      |  9 +++++
 .../guacamole/auth/ldap/user/UserContext.java   |  7 ++++
 .../apache/guacamole/net/auth/UserContext.java  | 13 +++++++
 .../apache/guacamole/net/auth/UserRecord.java   | 39 ++++++++++++++++++++
 .../net/auth/simple/SimpleUserContext.java      |  7 ++++
 6 files changed, 82 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/5340f553/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/user/SharedUserContext.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/user/SharedUserContext.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/user/SharedUserContext.java
index cdfe0fc..67cb6e4 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/user/SharedUserContext.java
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/user/SharedUserContext.java
@@ -37,6 +37,7 @@ import org.apache.guacamole.net.auth.Directory;
 import org.apache.guacamole.net.auth.SharingProfile;
 import org.apache.guacamole.net.auth.User;
 import org.apache.guacamole.net.auth.UserContext;
+import org.apache.guacamole.net.auth.UserRecord;
 import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet;
 import org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory;
 import org.apache.guacamole.net.auth.simple.SimpleDirectory;
@@ -181,6 +182,12 @@ public class SharedUserContext implements UserContext {
     }
 
     @Override
+    public ActivityRecordSet<UserRecord> getUserHistory()
+            throws GuacamoleException {
+        return new SimpleActivityRecordSet<UserRecord>();
+    }
+
+    @Override
     public ConnectionGroup getRootConnectionGroup() {
         return rootGroup;
     }

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/5340f553/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUserContext.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUserContext.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUserContext.java
index 9d3ba69..b18b955 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUserContext.java
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUserContext.java
@@ -36,12 +36,15 @@ import org.apache.guacamole.auth.jdbc.sharingprofile.ModeledSharingProfile;
 import org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileDirectory;
 import org.apache.guacamole.form.Form;
 import org.apache.guacamole.net.auth.ActiveConnection;
+import org.apache.guacamole.net.auth.ActivityRecordSet;
 import org.apache.guacamole.net.auth.AuthenticationProvider;
 import org.apache.guacamole.net.auth.Connection;
 import org.apache.guacamole.net.auth.ConnectionGroup;
 import org.apache.guacamole.net.auth.Directory;
 import org.apache.guacamole.net.auth.SharingProfile;
 import org.apache.guacamole.net.auth.User;
+import org.apache.guacamole.net.auth.UserRecord;
+import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet;
 
 /**
  * UserContext implementation which is driven by an arbitrary, underlying
@@ -162,6 +165,12 @@ public class ModeledUserContext extends RestrictedObject
     }
 
     @Override
+    public ActivityRecordSet<UserRecord> getUserHistory()
+            throws GuacamoleException {
+        return new SimpleActivityRecordSet<UserRecord>();
+    }
+
+    @Override
     public ConnectionGroup getRootConnectionGroup() throws GuacamoleException {
 
         // Build and return a root group for the current user

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/5340f553/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/user/UserContext.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/user/UserContext.java b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/user/UserContext.java
index 98d65ea..b7e9e27 100644
--- a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/user/UserContext.java
+++ b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/user/UserContext.java
@@ -37,6 +37,7 @@ import org.apache.guacamole.net.auth.ConnectionRecord;
 import org.apache.guacamole.net.auth.Directory;
 import org.apache.guacamole.net.auth.SharingProfile;
 import org.apache.guacamole.net.auth.User;
+import org.apache.guacamole.net.auth.UserRecord;
 import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet;
 import org.apache.guacamole.net.auth.simple.SimpleConnectionGroup;
 import org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory;
@@ -211,6 +212,12 @@ public class UserContext implements org.apache.guacamole.net.auth.UserContext {
     }
 
     @Override
+    public ActivityRecordSet<UserRecord> getUserHistory()
+            throws GuacamoleException {
+        return new SimpleActivityRecordSet<UserRecord>();
+    }
+
+    @Override
     public Collection<Form> getUserAttributes() {
         return Collections.<Form>emptyList();
     }

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/5340f553/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserContext.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserContext.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserContext.java
index 92f3604..8c741b8 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserContext.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserContext.java
@@ -157,6 +157,19 @@ public interface UserContext {
             throws GuacamoleException;
 
     /**
+     * Retrieves all user records visible to current user. The resulting
+     * set of user records can be further filtered and ordered using the
+     * methods defined on ActivityRecordSet.
+     *
+     * @return
+     *     A set of all user records visible to the current user.
+     *
+     * @throws GuacamoleException
+     *     If an error occurs while retrieving the user records.
+     */
+    ActivityRecordSet<UserRecord> getUserHistory() throws GuacamoleException;
+
+    /**
      * Retrieves a connection group which can be used to view and manipulate
      * connections, but only as allowed by the permissions given to the user of 
      * this UserContext.

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/5340f553/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserRecord.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserRecord.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserRecord.java
new file mode 100644
index 0000000..16ca2c6
--- /dev/null
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/UserRecord.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.guacamole.net.auth;
+
+/**
+ * A logging record describing when a user started and ended their Guacamole
+ * session.
+ */
+public interface UserRecord extends ActivityRecord {
+
+    /**
+     * Returns the authentication token associated with the user's session, if
+     * known. If permission is not granted to view the authentication tokens of
+     * other users, this may be null.
+     *
+     * @return
+     *     The authentication token associated with the user's session, or null
+     *     if this information is unavailable.
+     */
+    public String getToken();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/5340f553/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleUserContext.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleUserContext.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleUserContext.java
index 97584ed..360d74a 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleUserContext.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleUserContext.java
@@ -36,6 +36,7 @@ import org.apache.guacamole.net.auth.Directory;
 import org.apache.guacamole.net.auth.SharingProfile;
 import org.apache.guacamole.net.auth.User;
 import org.apache.guacamole.net.auth.UserContext;
+import org.apache.guacamole.net.auth.UserRecord;
 import org.apache.guacamole.protocol.GuacamoleConfiguration;
 
 /**
@@ -216,6 +217,12 @@ public class SimpleUserContext implements UserContext {
     }
 
     @Override
+    public ActivityRecordSet<UserRecord> getUserHistory()
+            throws GuacamoleException {
+        return new SimpleActivityRecordSet<UserRecord>();
+    }
+
+    @Override
     public Collection<Form> getUserAttributes() {
         return Collections.<Form>emptyList();
     }