From: Mathieu Baudier Date: Sat, 28 Nov 2015 20:14:56 +0000 (+0000) Subject: Adapt to LDAP X-Git-Tag: argeo-commons-2.1.31~32 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=13f4c2a07b6913bc8248bcba82c073873ebaae55;p=lgpl%2Fargeo-commons.git Adapt to LDAP git-svn-id: https://svn.argeo.org/commons/trunk@8652 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- 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 838486b6d..73dc510ec 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 @@ -12,6 +12,7 @@ import javax.naming.Context; 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; @@ -123,21 +124,21 @@ public class LdapUserAdmin extends AbstractUserDirectory { searchBase, searchFilter, searchControls); ArrayList res = new ArrayList(); - 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; diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java index cb1396c95..71633072d 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java @@ -73,7 +73,7 @@ public class UiAdminUtils { } 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; @@ -81,7 +81,7 @@ public class UiAdminUtils { /** 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 { diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java index b6b7d6ecd..62583b511 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java @@ -107,8 +107,7 @@ public class GroupMainPage extends FormPage implements ArgeoNames { 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", diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/RoleIconLP.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/RoleIconLP.java index 010ab5a8a..bb19220a9 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/RoleIconLP.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/RoleIconLP.java @@ -1,7 +1,6 @@ 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; @@ -19,7 +18,7 @@ public class RoleIconLP extends UserAdminAbstractLP { @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) diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java index 89901fa7c..78da62303 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java @@ -4,7 +4,6 @@ import javax.naming.InvalidNameException; 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; @@ -28,8 +27,7 @@ public abstract class UserAdminAbstractLP extends 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)