Improve user management
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / osgi / useradmin / OsUserDirectory.java
index c052fee1b1da12bc4193a208c4d21123fc4d0e21..e1ad5edf5372a7ce5eb17996f6e7faffa4de194c 100644 (file)
@@ -6,7 +6,6 @@ import java.util.List;
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingException;
 import javax.naming.directory.Attributes;
-import javax.naming.directory.BasicAttributes;
 import javax.naming.ldap.LdapName;
 
 import org.argeo.util.directory.HierarchyUnit;
@@ -27,9 +26,9 @@ public class OsUserDirectory extends AbstractLdapDirectoryDao {
                try {
                        osUserDn = new LdapName(LdapAttrs.uid.name() + "=" + osUsername + "," + directory.getUserBaseRdn() + ","
                                        + directory.getBaseDn());
-                       Attributes attributes = new BasicAttributes();
-                       attributes.put(LdapAttrs.uid.name(), osUsername);
-                       osUser = newUser(osUserDn, attributes);
+//                     Attributes attributes = new BasicAttributes();
+//                     attributes.put(LdapAttrs.uid.name(), osUsername);
+                       osUser = newUser(osUserDn);
                } catch (NamingException e) {
                        throw new IllegalStateException("Cannot create system user", e);
                }
@@ -95,5 +94,13 @@ public class OsUserDirectory extends AbstractLdapDirectoryDao {
                
        }
 
+       @Override
+       public Attributes doGetAttributes(LdapName name) {
+               try {
+                       return doGetEntry(name).getAttributes();
+               } catch (NameNotFoundException e) {
+                       throw new IllegalStateException(name + " doe not exist in " + getDirectory().getBaseDn(), e);
+               }
+       }
        
 }