Adapt to LDAP
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 28 Nov 2015 20:14:56 +0000 (20:14 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 28 Nov 2015 20:14:56 +0000 (20:14 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@8652 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.security.core/src/org/argeo/osgi/useradmin/LdapUserAdmin.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/UiAdminUtils.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/parts/GroupMainPage.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/RoleIconLP.java
org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java

index 838486b6de609324e27dd81691aef65987605021..73dc510eccae80b2a1702564f518aecee8a5242c 100644 (file)
@@ -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<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;
index cb1396c957537527c40d7b5db4f4f29082b6270e..71633072d58b61f936b2441dc3733c098ab9fa94 100644 (file)
@@ -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 {
index b6b7d6ecd5640c5bb532b802d723a0f89b4e15d0..62583b5112d87977b78810b06d8c1bbb7429c964 100644 (file)
@@ -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",
index 010ab5a8a2d60cff65b2bc898b10e29059e376fb..bb19220a971d1984531d08516007ba3e8ec99985 100644 (file)
@@ -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)
index 89901fa7c49c1c17675cc8eb5b5d349ea4a0c0a2..78da623037eeed2d1ca88f2ec25bf71d0cedad81 100644 (file)
@@ -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)