From abe709a71b808d69633904a2ce130a664bcd3b73 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 20 Oct 2015 15:18:17 -0700 Subject: [PATCH] GUAC-1115: Proceed even if an error prevents retrieval of all users in the directory (mitigates GUAC-1353). --- .../guacamole/auth/ldap/user/UserService.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/extensions/guacamole-auth-ldap/src/main/java/org/glyptodon/guacamole/auth/ldap/user/UserService.java b/extensions/guacamole-auth-ldap/src/main/java/org/glyptodon/guacamole/auth/ldap/user/UserService.java index 9e9533dd9..7599d5f10 100644 --- a/extensions/guacamole-auth-ldap/src/main/java/org/glyptodon/guacamole/auth/ldap/user/UserService.java +++ b/extensions/guacamole-auth-ldap/src/main/java/org/glyptodon/guacamole/auth/ldap/user/UserService.java @@ -143,8 +143,21 @@ public class UserService { // Build map of users by querying each username attribute separately Map users = new HashMap(); - for (String usernameAttribute : confService.getUsernameAttributes()) - putAllUsers(users, ldapConnection, usernameAttribute); + for (String usernameAttribute : confService.getUsernameAttributes()) { + + // Attempt to pull all users with given attribute + try { + putAllUsers(users, ldapConnection, usernameAttribute); + } + + // Log any errors non-fatally + catch (GuacamoleException e) { + logger.warn("Could not query list of all users for attribute \"{}\": {}", + usernameAttribute, e.getMessage()); + logger.debug("Error querying list of all users.", e); + } + + } // Return map of all users return users;