Catch missing LDAP accounts in group membership
This catches missing LDAP accounts when looking up group membership. This prevents throwing excessive LDAP stack traces to the log file, since a user that doesn't exist won't be a member of anything. Bug: Issue 1640 Change-Id: I75fd86fb9b8c5836125d261957893f34ffc48407
This commit is contained in:
		| @@ -198,7 +198,13 @@ import javax.security.auth.login.LoginException; | ||||
|       final HashMap<String, String> params = new HashMap<String, String>(); | ||||
|  | ||||
|       if (account == null) { | ||||
|         account = findAccount(schema, ctx, username); | ||||
|         try { | ||||
|           account = findAccount(schema, ctx, username); | ||||
|         } catch (AccountException e) { | ||||
|           LdapRealm.log.warn("Account " + username + | ||||
|               " not found, assuming empty group membership"); | ||||
|           return Collections.emptySet(); | ||||
|         } | ||||
|       } | ||||
|       for (String name : schema.groupMemberQueryList.get(0).getParameters()) { | ||||
|         params.put(name, account.get(name)); | ||||
| @@ -215,7 +221,13 @@ import javax.security.auth.login.LoginException; | ||||
|  | ||||
|     if (schema.accountMemberField != null) { | ||||
|       if (account == null) { | ||||
|         account = findAccount(schema, ctx, username); | ||||
|         try { | ||||
|           account = findAccount(schema, ctx, username); | ||||
|         } catch (AccountException e) { | ||||
|           LdapRealm.log.warn("Account " + username + | ||||
|               " not found, assuming empty group membership"); | ||||
|           return Collections.emptySet(); | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       final Attribute groupAtt = account.getAll(schema.accountMemberField); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Doug Kelly
					Doug Kelly