diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java index 3d5696773..1fc438a57 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java @@ -80,6 +80,7 @@ public class ActiveConnectionService public Collection retrieveObjects(AuthenticatedUser user, Collection identifiers) throws GuacamoleException { + String username = user.getIdentifier(); boolean isAdmin = user.getUser().isAdministrator(); Set identifierSet = new HashSet(identifiers); @@ -90,10 +91,15 @@ public class ActiveConnectionService Collection activeConnections = new ArrayList(identifiers.size()); for (ActiveConnectionRecord record : records) { + // Sensitive information should be included if the connection was + // started by the current user OR the user is an admin + boolean includeSensitiveInformation = + isAdmin || username.equals(record.getUsername()); + // Add connection if within requested identifiers if (identifierSet.contains(record.getUUID().toString())) { TrackedActiveConnection activeConnection = trackedActiveConnectionProvider.get(); - activeConnection.init(user, record, isAdmin); + activeConnection.init(user, record, includeSensitiveInformation); activeConnections.add(activeConnection); }