X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifUser.java;h=c03465b7058b318afecd63c689677c846ade3b4a;hb=4c7e1885b8bf3c93fa0919ace122e3f289a925ea;hp=135645a1233a8e1940dfeb20015a81bfdb984057;hpb=da9d144b6b241e1526a3bd255dff905a7969a5bc;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUser.java b/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUser.java index 135645a12..c03465b70 100644 --- a/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUser.java +++ b/org.argeo.util/src/org/argeo/osgi/useradmin/LdifUser.java @@ -14,6 +14,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.StringJoiner; import javax.naming.NamingEnumeration; import javax.naming.NamingException; @@ -156,7 +157,7 @@ class LdifUser implements DirectoryUser { byte[] sha1hash(char[] password) { byte[] hashedPassword = ("{SHA}" + Base64.getEncoder().encodeToString(DigestUtils.sha1(DigestUtils.charsToBytes(password)))) - .getBytes(StandardCharsets.UTF_8); + .getBytes(StandardCharsets.UTF_8); return hashedPassword; } @@ -307,24 +308,25 @@ class LdifUser implements DirectoryUser { } if (attr.size() == 1) return value; - if (!attr.getID().equals(LdapAttrs.objectClass.name())) - return value; +// if (!attr.getID().equals(LdapAttrs.objectClass.name())) +// return value; // special case for object class NamingEnumeration en = attr.getAll(); - Set objectClasses = new HashSet(); + StringJoiner values = new StringJoiner("\n"); + // Set values = new HashSet(); while (en.hasMore()) { - String objectClass = en.next().toString(); - objectClasses.add(objectClass); + String v = en.next().toString(); + values.add(v); } - - if (objectClasses.contains(userAdmin.getUserObjectClass())) - return userAdmin.getUserObjectClass(); - else if (objectClasses.contains(userAdmin.getGroupObjectClass())) - return userAdmin.getGroupObjectClass(); - else - return value; + return values.toString(); +// if (objectClasses.contains(userAdmin.getUserObjectClass())) +// return userAdmin.getUserObjectClass(); +// else if (objectClasses.contains(userAdmin.getGroupObjectClass())) +// return userAdmin.getGroupObjectClass(); +// else +// return value; } catch (NamingException e) { - throw new UserDirectoryException("Cannot get value for attribute " + key, e); + throw new IllegalStateException("Cannot get value for attribute " + key, e); } }