import javax.naming.InvalidNameException;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.SearchControls;
searchBase, searchFilter, searchControls);
ArrayList<DirectoryUser> res = new ArrayList<DirectoryUser>();
- while (results.hasMoreElements()) {
+ results: while (results.hasMoreElements()) {
SearchResult searchResult = results.next();
Attributes attrs = searchResult.getAttributes();
+ Attribute objectClassAttr = attrs.get(objectClass.name());
LdapName dn = toDn(searchBase, searchResult);
LdifUser role;
- if (attrs.get(objectClass.name()).contains(
- getGroupObjectClass()))
+ if (objectClassAttr.contains(getGroupObjectClass()))
role = new LdifGroup(this, dn, attrs);
- else if (attrs.get(objectClass.name()).contains(
- getUserObjectClass()))
+ else if (objectClassAttr.contains(getUserObjectClass()))
role = new LdifUser(this, dn, attrs);
- else
- throw new UserDirectoryException(
- "Unsupported LDAP type for "
- + searchResult.getName());
+ else {
+ log.warn("Unsupported LDAP type for "
+ + searchResult.getName());
+ continue results;
+ }
res.add(role);
}
return res;
}
public final static String getUsername(User user) {
- String cn = getProperty(user, LdifName.dn.name());
+ String cn = getProperty(user, LdifName.cn.name());
if (isEmpty(cn))
cn = getProperty(user, LdifName.uid.name());
return cn;
/** Simply retrieves a display name of the relevant domain */
public final static String getDomainName(User user) {
- String dn = (String) user.getProperties().get(LdifName.dn.name());
+ String dn = user.getName();
if (dn.endsWith(AuthConstants.ROLES_BASEDN))
return "System roles";
try {
GridLayout layout = new GridLayout(2, false);
body.setLayout(layout);
- final Text dnTxt = createLT(body, "DN",
- UiAdminUtils.getProperty(group, LdifName.dn.name()));
+ final Text dnTxt = createLT(body, "DN",group.getName());
dnTxt.setEnabled(false);
final Text cnTxt = createLT(body, "Common Name",
package org.argeo.security.ui.admin.internal.providers;
import org.argeo.cms.auth.AuthConstants;
-import org.argeo.osgi.useradmin.LdifName;
import org.argeo.security.ui.admin.SecurityAdminImages;
import org.eclipse.swt.graphics.Image;
import org.osgi.service.useradmin.Role;
@Override
public Image getImage(Object element) {
User user = (User) element;
- String dn = (String) user.getProperties().get(LdifName.dn.name());
+ String dn = user.getName();
if (dn.endsWith(AuthConstants.ROLES_BASEDN))
return SecurityAdminImages.ICON_ROLE;
else if (user.getType() == Role.GROUP)
import javax.naming.ldap.LdapName;
import org.argeo.ArgeoException;
-import org.argeo.osgi.useradmin.LdifName;
import org.argeo.security.ui.admin.internal.UiAdminUtils;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.ColumnLabelProvider;
// Self as bold
try {
LdapName selfUserName = UiAdminUtils.getLdapName();
- String userName = UiAdminUtils.getProperty((User) element,
- LdifName.dn.name());
+ String userName = ((User) element).getName();
LdapName userLdapName = new LdapName(userName);
if (userLdapName.equals(selfUserName)) {
if (bold == null)