GUACAMOLE-393: Add session invalidation hooks to UserContext.
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/45adf2fd Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/45adf2fd Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/45adf2fd Branch: refs/heads/master Commit: 45adf2fd9392338cb100379d28ad64f5e7abff6e Parents: c20457f Author: Michael Jumper <[email protected]> Authored: Mon May 29 20:52:45 2017 -0700 Committer: Michael Jumper <[email protected]> Committed: Mon Sep 25 11:47:37 2017 -0700 ---------------------------------------------------------------------- .../guacamole/auth/jdbc/sharing/user/SharedUserContext.java | 5 +++++ .../apache/guacamole/auth/jdbc/user/ModeledUserContext.java | 5 +++++ .../java/org/apache/guacamole/auth/ldap/user/UserContext.java | 5 +++++ .../main/java/org/apache/guacamole/net/auth/UserContext.java | 7 +++++++ .../apache/guacamole/net/auth/simple/SimpleUserContext.java | 5 +++++ .../src/main/java/org/apache/guacamole/GuacamoleSession.java | 4 ++++ 6 files changed, 31 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/45adf2fd/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 cad1bab..2092898 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 @@ -204,4 +204,9 @@ public class SharedUserContext implements UserContext { return Collections.<Form>emptyList(); } + @Override + public void invalidate() { + // Nothing to invalidate + } + } http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/45adf2fd/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 d43c3c1..9d3ba69 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 @@ -191,4 +191,9 @@ public class ModeledUserContext extends RestrictedObject return ModeledSharingProfile.ATTRIBUTES; } + @Override + public void invalidate() { + // Nothing to invalidate + } + } http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/45adf2fd/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 2c4703c..39c32e4 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 @@ -229,4 +229,9 @@ public class UserContext implements org.apache.guacamole.net.auth.UserContext { return Collections.<Form>emptyList(); } + @Override + public void invalidate() { + // Nothing to invalidate + } + } http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/45adf2fd/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 5c6f974..596c5d9 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 @@ -212,4 +212,11 @@ public interface UserContext { */ Collection<Form> getSharingProfileAttributes(); + /** + * Invalidates this user context, releasing all associated resources. This + * function will be invoked when the user logs out, or when their session + * is automatically invalidated. + */ + void invalidate(); + } http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/45adf2fd/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 1e55db9..d87cf95 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 @@ -234,4 +234,9 @@ public class SimpleUserContext implements UserContext { return Collections.<Form>emptyList(); } + @Override + public void invalidate() { + // Nothing to invalidate + } + } http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/45adf2fd/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java ---------------------------------------------------------------------- diff --git a/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java b/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java index 17168af..e723c0a 100644 --- a/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java +++ b/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java @@ -252,6 +252,10 @@ public class GuacamoleSession { } } + // Invalidate all user contextx + for (UserContext userContext : userContexts) + userContext.invalidate(); + // Invalidate the authenticated user object authenticatedUser.invalidate();
