From 51cc1040b4154fa2968f17f97a206ec838f7abc1 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 1 Dec 2015 09:51:18 +0000 Subject: [PATCH] Make Attributes keys case insensitive git-svn-id: https://svn.argeo.org/commons/trunk@8657 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../src/org/argeo/osgi/useradmin/AbstractUserDirectory.java | 2 +- .../src/org/argeo/osgi/useradmin/LdapUserAdmin.java | 1 + .../src/org/argeo/osgi/useradmin/LdifParser.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/org.argeo.security.core/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java b/org.argeo.security.core/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java index 0ed712c0b..f871cd25e 100644 --- a/org.argeo.security.core/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java +++ b/org.argeo.security.core/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java @@ -293,7 +293,7 @@ abstract class AbstractUserDirectory implements UserAdmin, UserDirectory { if ((daoHasRole(dn) && !wc.getDeletedUsers().containsKey(dn)) || wc.getNewUsers().containsKey(dn)) throw new UserDirectoryException("Already a role " + name); - BasicAttributes attrs = new BasicAttributes(); + BasicAttributes attrs = new BasicAttributes(true); attrs.put("dn", dn.toString()); Rdn nameRdn = dn.getRdn(dn.size() - 1); // TODO deal with multiple attr RDN diff --git a/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java b/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java index 73dc510ec..17bbc3733 100644 --- a/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java +++ b/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java @@ -127,6 +127,7 @@ public class LdapUserAdmin extends AbstractUserDirectory { results: while (results.hasMoreElements()) { SearchResult searchResult = results.next(); Attributes attrs = searchResult.getAttributes(); + log.debug(attrs.isCaseIgnored()); Attribute objectClassAttr = attrs.get(objectClass.name()); LdapName dn = toDn(searchBase, searchResult); LdifUser role; diff --git a/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifParser.java b/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifParser.java index 9e89c5eb7..da793adce 100644 --- a/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifParser.java +++ b/org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifParser.java @@ -116,7 +116,7 @@ class LdifParser { try { currentDn = new LdapName( attributeValue.toString()); - currentAttributes = new BasicAttributes(); + currentAttributes = new BasicAttributes(true); } catch (InvalidNameException e) { log.error(attributeValue + " not a valid DN, skipping the entry."); -- 2.30.2