X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifAuthorization.java;h=354f8c0e224d333f2f55b3903178c1bc285614d6;hb=7f312da45149f09d651f1b317061e4bdc3174a43;hp=e06c42e1ffb213c501ce23b2bc2edd90498b74c0;hpb=e66b9893b0e511f8ab295e3cee42b7dc966f1597;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifAuthorization.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifAuthorization.java index e06c42e1f..354f8c0e2 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifAuthorization.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifAuthorization.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.Dictionary; import java.util.List; +import org.argeo.naming.LdapAttrs; import org.osgi.service.useradmin.Authorization; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; @@ -15,25 +16,13 @@ class LdifAuthorization implements Authorization { private final String displayName; private final List allRoles; - @SuppressWarnings("unchecked") public LdifAuthorization(User user, List allRoles) { if (user == null) { this.name = null; this.displayName = "anonymous"; } else { this.name = user.getName(); - Dictionary props = user.getProperties(); - Object displayName = props.get(LdifName.displayName); - if (displayName == null) - displayName = props.get(LdifName.cn); - if (displayName == null) - displayName = props.get(LdifName.uid); - if (displayName == null) - displayName = user.getName(); - if (displayName == null) - throw new UserDirectoryException("Cannot set display name for " - + user); - this.displayName = displayName.toString(); + this.displayName = extractDisplayName(user); } // roles String[] roles = new String[allRoles.size()]; @@ -79,4 +68,18 @@ class LdifAuthorization implements Authorization { public String toString() { return displayName; } + + final static String extractDisplayName(User user) { + Dictionary props = user.getProperties(); + Object displayName = props.get(LdapAttrs.displayName); + if (displayName == null) + displayName = props.get(LdapAttrs.cn); + if (displayName == null) + displayName = props.get(LdapAttrs.uid); + if (displayName == null) + displayName = user.getName(); + if (displayName == null) + throw new UserDirectoryException("Cannot set display name for " + user); + return displayName.toString(); + } }