X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Futil%2Fdirectory%2Fldap%2FLdifDao.java;h=7387d9e0f9cd52f735ec94625fa296380431d259;hb=e9d0731a65b0d3523906c58f987ad9610c4286b7;hp=5826d86ac1d29324d50f31badf63afcc5bb6a98d;hpb=0ce8ecfe974cec9f524c16884209cd08544d890d;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/util/directory/ldap/LdifDao.java b/org.argeo.util/src/org/argeo/util/directory/ldap/LdifDao.java index 5826d86ac..7387d9e0f 100644 --- a/org.argeo.util/src/org/argeo/util/directory/ldap/LdifDao.java +++ b/org.argeo.util/src/org/argeo/util/directory/ldap/LdifDao.java @@ -12,9 +12,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Collections; -import java.util.Dictionary; import java.util.HashSet; -import java.util.Hashtable; import java.util.List; import java.util.NavigableMap; import java.util.Objects; @@ -28,7 +26,6 @@ import javax.naming.NamingException; import javax.naming.directory.Attributes; import javax.naming.ldap.LdapName; -import org.argeo.util.directory.DirectoryConf; import org.argeo.util.directory.HierarchyUnit; import org.argeo.util.naming.LdapObjs; import org.osgi.framework.Filter; @@ -86,12 +83,12 @@ public class LdifDao extends AbstractLdapDirectoryDao { // return scopedUserAdmin; // } - private static Dictionary fromUri(String uri, String baseDn) { - Hashtable res = new Hashtable(); - res.put(DirectoryConf.uri.name(), uri); - res.put(DirectoryConf.baseDn.name(), baseDn); - return res; - } +// private static Dictionary fromUri(String uri, String baseDn) { +// Hashtable res = new Hashtable(); +// res.put(DirectoryConf.uri.name(), uri); +// res.put(DirectoryConf.baseDn.name(), baseDn); +// return res; +// } public void init() { @@ -227,6 +224,15 @@ public class LdifDao extends AbstractLdapDirectoryDao { throw new NameNotFoundException(key + " not persisted"); } + @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); + } + } + @Override public Boolean entryExists(LdapName dn) { return entries.containsKey(dn);// || groups.containsKey(dn); @@ -364,6 +370,8 @@ public class LdifDao extends AbstractLdapDirectoryDao { // } @Override public HierarchyUnit doGetHierarchyUnit(LdapName dn) { + if (getDirectory().getBaseDn().equals(dn)) + return getDirectory(); return hierarchy.get(dn); }