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;
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;
// return scopedUserAdmin;
// }
- private static Dictionary<String, Object> fromUri(String uri, String baseDn) {
- Hashtable<String, Object> res = new Hashtable<String, Object>();
- res.put(DirectoryConf.uri.name(), uri);
- res.put(DirectoryConf.baseDn.name(), baseDn);
- return res;
- }
+// private static Dictionary<String, Object> fromUri(String uri, String baseDn) {
+// Hashtable<String, Object> res = new Hashtable<String, Object>();
+// res.put(DirectoryConf.uri.name(), uri);
+// res.put(DirectoryConf.baseDn.name(), baseDn);
+// return res;
+// }
public void init() {
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);
// }
@Override
public HierarchyUnit doGetHierarchyUnit(LdapName dn) {
+ if (getDirectory().getBaseDn().equals(dn))
+ return getDirectory();
return hierarchy.get(dn);
}