Repository: ambari Updated Branches: refs/heads/trunk 2aee43d38 -> f2114d8c9
AMBARI-6838. Admin view: LDAP sync doesn't work when group contains users in upper case. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f2114d8c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f2114d8c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f2114d8c Branch: refs/heads/trunk Commit: f2114d8c9e7905cc6b4d87c2007e1253d6d9e01d Parents: 2aee43d Author: Siddharth Wagle <[email protected]> Authored: Tue Aug 12 16:04:45 2014 -0700 Committer: Siddharth Wagle <[email protected]> Committed: Tue Aug 12 16:04:45 2014 -0700 ---------------------------------------------------------------------- .../security/authorization/AmbariLdapDataPopulator.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/f2114d8c/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java index 3e0d49f..29b69a6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java @@ -227,13 +227,15 @@ public class AmbariLdapDataPopulator { if (!user.isLdapUser()) { users.setUserLdap(externalMember); } - internalUsers.remove(externalMember); + if (!internalMembers.containsKey(externalMember)) { + users.addMemberToGroup(groupName, externalMember); + } internalMembers.remove(externalMember); + internalUsers.remove(externalMember); } else { users.createUser(externalMember, "", true, false); users.setUserLdap(externalMember); } - users.addMemberToGroup(groupName, externalMember); } for (Entry<String, User> userToBeUnsynced: internalMembers.entrySet()) { final User user = userToBeUnsynced.getValue(); @@ -331,7 +333,7 @@ public class AmbariLdapDataPopulator { final DirContextAdapter adapter = (DirContextAdapter) ctx; for (String uniqueMember: adapter.getStringAttributes(ldapServerProperties.getGroupMembershipAttr())) { final DirContextAdapter userAdapter = (DirContextAdapter) ldapTemplate.lookup(uniqueMember); - members.add(userAdapter.getStringAttribute(ldapServerProperties.getUsernameAttribute().toLowerCase())); + members.add(userAdapter.getStringAttribute(ldapServerProperties.getUsernameAttribute()).toLowerCase()); } return null; }
