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/25 19:14:36 UTC
[1/4] incubator-guacamole-client git commit: GUACAMOLE-393: Add
session invalidation hooks to AuthenticatedUser.
Repository: incubator-guacamole-client
Updated Branches:
refs/heads/master 93e42f829 -> b64247dfb
GUACAMOLE-393: Add session invalidation hooks to AuthenticatedUser.
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/c20457f8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/c20457f8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/c20457f8
Branch: refs/heads/master
Commit: c20457f89b6d0658bbb684264e06d71fb608817f
Parents: b90a989
Author: Michael Jumper <mj...@apache.org>
Authored: Mon May 29 19:03:42 2017 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Mon Sep 25 11:47:25 2017 -0700
----------------------------------------------------------------------
.../guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java | 5 +++++
.../apache/guacamole/net/auth/AbstractAuthenticatedUser.java | 5 +++++
.../java/org/apache/guacamole/net/auth/AuthenticatedUser.java | 7 +++++++
.../src/main/java/org/apache/guacamole/GuacamoleSession.java | 3 +++
4 files changed, 20 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/c20457f8/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
index a3848f4..24118af 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/RemoteAuthenticatedUser.java
@@ -136,4 +136,9 @@ public abstract class RemoteAuthenticatedUser implements AuthenticatedUser {
return authenticationProvider;
}
+ @Override
+ public void invalidate() {
+ // Nothing to invalidate
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/c20457f8/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.java
index 730eec0..08b9b4e 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.java
@@ -29,4 +29,9 @@ public abstract class AbstractAuthenticatedUser extends AbstractIdentifiable
// Prior functionality now resides within AbstractIdentifiable
+ @Override
+ public void invalidate() {
+ // Nothing to invalidate
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/c20457f8/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticatedUser.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticatedUser.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticatedUser.java
index 7f363f2..f6ceb3a 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticatedUser.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticatedUser.java
@@ -49,4 +49,11 @@ public interface AuthenticatedUser extends Identifiable {
*/
Credentials getCredentials();
+ /**
+ * Invalidates this authenticated user and their associated token such that
+ * they are no longer logged in. This function will be automatically
+ * invoked when the user logs out, or when their session expires.
+ */
+ void invalidate();
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/c20457f8/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 de81453..17168af 100644
--- a/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java
+++ b/guacamole/src/main/java/org/apache/guacamole/GuacamoleSession.java
@@ -252,6 +252,9 @@ public class GuacamoleSession {
}
}
+ // Invalidate the authenticated user object
+ authenticatedUser.invalidate();
+
}
}
[4/4] incubator-guacamole-client git commit: GUACAMOLE-393: Merge add
extension logout/shutdown hooks
Posted by vn...@apache.org.
GUACAMOLE-393: Merge add extension logout/shutdown hooks
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/b64247df
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/b64247df
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/b64247df
Branch: refs/heads/master
Commit: b64247dfb2901d009964187315b6b902f8aed4cd
Parents: 93e42f8 2c587e5
Author: Nick Couchman <vn...@apache.org>
Authored: Mon Sep 25 15:12:45 2017 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Mon Sep 25 15:12:45 2017 -0400
----------------------------------------------------------------------
.../auth/cas/CASAuthenticationProvider.java | 5 ++++
.../auth/duo/DuoAuthenticationProvider.java | 5 ++++
.../HTTPHeaderAuthenticationProvider.java | 5 ++++
.../jdbc/InjectedAuthenticationProvider.java | 5 ++++
.../jdbc/sharing/user/SharedUserContext.java | 5 ++++
.../auth/jdbc/user/ModeledUserContext.java | 5 ++++
.../auth/jdbc/user/RemoteAuthenticatedUser.java | 5 ++++
.../auth/ldap/LDAPAuthenticationProvider.java | 5 ++++
.../guacamole/auth/ldap/user/UserContext.java | 5 ++++
.../net/auth/AbstractAuthenticatedUser.java | 5 ++++
.../guacamole/net/auth/AuthenticatedUser.java | 7 ++++++
.../net/auth/AuthenticationProvider.java | 7 ++++++
.../apache/guacamole/net/auth/UserContext.java | 7 ++++++
.../simple/SimpleAuthenticationProvider.java | 5 ++++
.../net/auth/simple/SimpleUserContext.java | 5 ++++
.../GuacamoleServletContextListener.java | 25 +++++++++++++++++++-
.../org/apache/guacamole/GuacamoleSession.java | 7 ++++++
.../extension/AuthenticationProviderFacade.java | 6 +++++
18 files changed, 118 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
[3/4] incubator-guacamole-client git commit: GUACAMOLE-393: Add
AuthenticationProvider shutdown hook.
Posted by vn...@apache.org.
GUACAMOLE-393: Add AuthenticationProvider shutdown hook.
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/2c587e5f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/2c587e5f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/2c587e5f
Branch: refs/heads/master
Commit: 2c587e5f9ffe8aa84c460b8f63cd71483bd4bc7f
Parents: 45adf2f
Author: Michael Jumper <mj...@apache.org>
Authored: Mon May 29 21:21:48 2017 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Mon Sep 25 11:47:44 2017 -0700
----------------------------------------------------------------------
.../auth/cas/CASAuthenticationProvider.java | 5 ++++
.../auth/duo/DuoAuthenticationProvider.java | 5 ++++
.../HTTPHeaderAuthenticationProvider.java | 5 ++++
.../jdbc/InjectedAuthenticationProvider.java | 5 ++++
.../auth/ldap/LDAPAuthenticationProvider.java | 5 ++++
.../net/auth/AuthenticationProvider.java | 7 ++++++
.../simple/SimpleAuthenticationProvider.java | 5 ++++
.../GuacamoleServletContextListener.java | 25 +++++++++++++++++++-
.../extension/AuthenticationProviderFacade.java | 6 +++++
9 files changed, 67 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/extensions/guacamole-auth-cas/src/main/java/org/apache/guacamole/auth/cas/CASAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-cas/src/main/java/org/apache/guacamole/auth/cas/CASAuthenticationProvider.java b/extensions/guacamole-auth-cas/src/main/java/org/apache/guacamole/auth/cas/CASAuthenticationProvider.java
index 241f17a..28122f9 100644
--- a/extensions/guacamole-auth-cas/src/main/java/org/apache/guacamole/auth/cas/CASAuthenticationProvider.java
+++ b/extensions/guacamole-auth-cas/src/main/java/org/apache/guacamole/auth/cas/CASAuthenticationProvider.java
@@ -107,4 +107,9 @@ public class CASAuthenticationProvider implements AuthenticationProvider {
}
+ @Override
+ public void shutdown() {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/DuoAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/DuoAuthenticationProvider.java b/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/DuoAuthenticationProvider.java
index f998996..1c84046 100644
--- a/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/DuoAuthenticationProvider.java
+++ b/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/DuoAuthenticationProvider.java
@@ -102,4 +102,9 @@ public class DuoAuthenticationProvider implements AuthenticationProvider {
return context;
}
+ @Override
+ public void shutdown() {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/extensions/guacamole-auth-header/src/main/java/org/apache/guacamole/auth/header/HTTPHeaderAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-header/src/main/java/org/apache/guacamole/auth/header/HTTPHeaderAuthenticationProvider.java b/extensions/guacamole-auth-header/src/main/java/org/apache/guacamole/auth/header/HTTPHeaderAuthenticationProvider.java
index 1721f16..b3385b1 100644
--- a/extensions/guacamole-auth-header/src/main/java/org/apache/guacamole/auth/header/HTTPHeaderAuthenticationProvider.java
+++ b/extensions/guacamole-auth-header/src/main/java/org/apache/guacamole/auth/header/HTTPHeaderAuthenticationProvider.java
@@ -107,4 +107,9 @@ public class HTTPHeaderAuthenticationProvider implements AuthenticationProvider
}
+ @Override
+ public void shutdown() {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/InjectedAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/InjectedAuthenticationProvider.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/InjectedAuthenticationProvider.java
index d06d6ed..e73b3df 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/InjectedAuthenticationProvider.java
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/InjectedAuthenticationProvider.java
@@ -104,4 +104,9 @@ public abstract class InjectedAuthenticationProvider implements AuthenticationPr
authenticatedUser, credentials);
}
+ @Override
+ public void shutdown() {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPAuthenticationProvider.java b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPAuthenticationProvider.java
index 1db4ee9..f9c4a7d 100644
--- a/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPAuthenticationProvider.java
+++ b/extensions/guacamole-auth-ldap/src/main/java/org/apache/guacamole/auth/ldap/LDAPAuthenticationProvider.java
@@ -103,5 +103,10 @@ public class LDAPAuthenticationProvider implements AuthenticationProvider {
return context;
}
+ @Override
+ public void shutdown() {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticationProvider.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticationProvider.java
index 3acc512..448f495 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticationProvider.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/AuthenticationProvider.java
@@ -167,5 +167,12 @@ public interface AuthenticationProvider {
UserContext updateUserContext(UserContext context,
AuthenticatedUser authenticatedUser,
Credentials credentials) throws GuacamoleException;
+
+ /**
+ * Frees all resources associated with this AuthenticationProvider. This
+ * function will be automatically invoked when the Guacamole server is
+ * shutting down.
+ */
+ void shutdown();
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.java
index 96766cb..83ac794 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.java
@@ -260,4 +260,9 @@ public abstract class SimpleAuthenticationProvider
}
+ @Override
+ public void shutdown() {
+ // Do nothing
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/guacamole/src/main/java/org/apache/guacamole/GuacamoleServletContextListener.java
----------------------------------------------------------------------
diff --git a/guacamole/src/main/java/org/apache/guacamole/GuacamoleServletContextListener.java b/guacamole/src/main/java/org/apache/guacamole/GuacamoleServletContextListener.java
index 72fe273..e8ad6a8 100644
--- a/guacamole/src/main/java/org/apache/guacamole/GuacamoleServletContextListener.java
+++ b/guacamole/src/main/java/org/apache/guacamole/GuacamoleServletContextListener.java
@@ -21,14 +21,17 @@ package org.apache.guacamole;
import org.apache.guacamole.tunnel.TunnelModule;
import com.google.inject.Guice;
+import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Stage;
import com.google.inject.servlet.GuiceServletContextListener;
+import java.util.List;
import javax.servlet.ServletContextEvent;
import org.apache.guacamole.environment.Environment;
import org.apache.guacamole.environment.LocalEnvironment;
import org.apache.guacamole.extension.ExtensionModule;
import org.apache.guacamole.log.LogModule;
+import org.apache.guacamole.net.auth.AuthenticationProvider;
import org.apache.guacamole.rest.RESTServiceModule;
import org.apache.guacamole.rest.auth.HashTokenSessionMap;
import org.apache.guacamole.rest.auth.TokenSessionMap;
@@ -56,6 +59,12 @@ public class GuacamoleServletContextListener extends GuiceServletContextListener
*/
private TokenSessionMap sessionMap;
+ /**
+ * List of all authentication providers from all loaded extensions.
+ */
+ @Inject
+ private List<AuthenticationProvider> authProviders;
+
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
@@ -75,13 +84,21 @@ public class GuacamoleServletContextListener extends GuiceServletContextListener
@Override
protected Injector getInjector() {
- return Guice.createInjector(Stage.PRODUCTION,
+
+ // Create injector
+ Injector injector = Guice.createInjector(Stage.PRODUCTION,
new EnvironmentModule(environment),
new LogModule(environment),
new ExtensionModule(environment),
new RESTServiceModule(sessionMap),
new TunnelModule()
);
+
+ // Inject any annotated members of this class
+ injector.injectMembers(this);
+
+ return injector;
+
}
@Override
@@ -93,6 +110,12 @@ public class GuacamoleServletContextListener extends GuiceServletContextListener
if (sessionMap != null)
sessionMap.shutdown();
+ // Unload all extensions
+ if (authProviders != null) {
+ for (AuthenticationProvider authProvider : authProviders)
+ authProvider.shutdown();
+ }
+
}
}
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/2c587e5f/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
----------------------------------------------------------------------
diff --git a/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java b/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
index e1ed5ff..c1e2765 100644
--- a/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
+++ b/guacamole/src/main/java/org/apache/guacamole/extension/AuthenticationProviderFacade.java
@@ -209,4 +209,10 @@ public class AuthenticationProviderFacade implements AuthenticationProvider {
}
+ @Override
+ public void shutdown() {
+ if (authProvider != null)
+ authProvider.shutdown();
+ }
+
}
[2/4] incubator-guacamole-client git commit: GUACAMOLE-393: Add
session invalidation hooks to UserContext.
Posted by vn...@apache.org.
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 <mj...@apache.org>
Authored: Mon May 29 20:52:45 2017 -0700
Committer: Michael Jumper <mj...@apache.org>
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();