import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TreeSet;
import javax.naming.InvalidNameException;
import javax.naming.ldap.LdapName;
else
this.tokensBaseDn = null;
} catch (InvalidNameException e) {
- throw new UserDirectoryException("Cannot initialize " + AggregatingUserAdmin.class, e);
+ throw new IllegalStateException("Cannot initialize " + AggregatingUserAdmin.class, e);
}
}
if (!(ud instanceof AbstractUserDirectory))
throw new IllegalArgumentException("Only " + AbstractUserDirectory.class.getName() + " is supported");
AbstractUserDirectory userDirectory = (AbstractUserDirectory) ud;
- String basePath = userDirectory.getBasePath();
+ String basePath = userDirectory.getContext();
if (isSystemRolesBaseDn(basePath)) {
this.systemRoles = userDirectory;
systemRoles.setExternalRoles(this);
} else {
LdapName baseDn = toLdapName(basePath);
if (businessRoles.containsKey(baseDn))
- throw new UserDirectoryException("There is already a user admin for " + baseDn);
+ throw new IllegalStateException("There is already a user admin for " + baseDn);
businessRoles.put(baseDn, userDirectory);
}
userDirectory.init();
try {
return findUserAdmin(new LdapName(name));
} catch (InvalidNameException e) {
- throw new UserDirectoryException("Badly formatted name " + name, e);
+ throw new IllegalArgumentException("Badly formatted name " + name, e);
}
}
}
}
if (res.size() == 0)
- throw new UserDirectoryException("Cannot find user admin for " + name);
+ throw new IllegalStateException("Cannot find user admin for " + name);
if (res.size() > 1)
- throw new UserDirectoryException("Multiple user admin found for " + name);
+ throw new IllegalStateException("Multiple user admin found for " + name);
return res.get(0);
}
protected void removeUserDirectory(String basePath) {
if (isSystemRolesBaseDn(basePath))
- throw new UserDirectoryException("System roles cannot be removed ");
+ throw new IllegalArgumentException("System roles cannot be removed ");
LdapName baseDn = toLdapName(basePath);
if (!businessRoles.containsKey(baseDn))
- throw new UserDirectoryException("No user directory registered for " + baseDn);
+ throw new IllegalStateException("No user directory registered for " + baseDn);
AbstractUserDirectory userDirectory = businessRoles.remove(baseDn);
destroy(userDirectory);
}
protected void preDestroy(UserDirectory userDirectory) {
}
+ public Set<UserDirectory> getUserDirectories() {
+ TreeSet<UserDirectory> res = new TreeSet<>((o1, o2) -> o1.getContext().compareTo(o2.getContext()));
+ res.addAll(businessRoles.values());
+ return res;
+ }
}