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() {
*/
@Override
- public LdapEntry daoGetEntry(LdapName key) throws NameNotFoundException {
+ public LdapEntry doGetEntry(LdapName key) throws NameNotFoundException {
// if (groups.containsKey(key))
// return groups.get(key);
// if (users.containsKey(key))
}
@Override
- public Boolean daoHasEntry(LdapName dn) {
+ 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);
}
entries: for (LdapName name : entries.keySet()) {
LdapEntry group;
try {
- LdapEntry entry = daoGetEntry(name);
+ LdapEntry entry = doGetEntry(name);
if (AbstractLdapDirectory.hasObjectClass(entry.getAttributes(), getDirectory().getGroupObjectClass())) {
group = entry;
} else {
Attributes modifiedAttrs = wc.getModifiedData().get(dn);
LdapEntry user;
try {
- user = daoGetEntry(dn);
+ user = doGetEntry(dn);
} catch (NameNotFoundException e) {
throw new IllegalStateException("User to modify no found " + dn, e);
}
// }
@Override
public HierarchyUnit doGetHierarchyUnit(LdapName dn) {
+ if (getDirectory().getBaseDn().equals(dn))
+ return getDirectory();
return hierarchy.get(dn);
}