X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifUserAdmin.java;h=b19e9bf4f311da72fc962bb5b411913d05ae57b0;hb=73a89e099608a51d9aef814a3f85a62947275f59;hp=e75c698221b9ee63b07e5f322d124f8bd4463a8a;hpb=31d7eccd2b0effdadaaa5b6349e5b6b6ea753e3c;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java index e75c69822..b19e9bf4f 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java @@ -40,15 +40,19 @@ public class LdifUserAdmin extends AbstractUserDirectory { private SortedMap groups = new TreeMap(); public LdifUserAdmin(String uri, String baseDn) { - this(fromUri(uri, baseDn)); + this(fromUri(uri, baseDn), false); } public LdifUserAdmin(Dictionary properties) { - super(null, properties); + this(properties, false); + } + + protected LdifUserAdmin(Dictionary properties, boolean scoped) { + super(null, properties, scoped); } public LdifUserAdmin(URI uri, Dictionary properties) { - super(uri, properties); + super(uri, properties, false); } @Override @@ -69,7 +73,7 @@ public class LdifUserAdmin extends AbstractUserDirectory { } Dictionary properties = cloneProperties(); properties.put(UserAdminConf.readOnly.name(), "true"); - LdifUserAdmin scopedUserAdmin = new LdifUserAdmin(properties); + LdifUserAdmin scopedUserAdmin = new LdifUserAdmin(properties, true); scopedUserAdmin.groups = Collections.unmodifiableSortedMap(groups); scopedUserAdmin.users = Collections.unmodifiableSortedMap(users); return scopedUserAdmin; @@ -83,13 +87,15 @@ public class LdifUserAdmin extends AbstractUserDirectory { } public void init() { + try { - if (getUri().getScheme().equals("file")) { - File file = new File(getUri()); + URI u = new URI(getUri()); + if (u.getScheme().equals("file")) { + File file = new File(u); if (!file.exists()) return; } - load(getUri().toURL().openStream()); + load(u.toURL().openStream()); } catch (Exception e) { throw new UserDirectoryException("Cannot open URL " + getUri(), e); } @@ -144,10 +150,10 @@ public class LdifUserAdmin extends AbstractUserDirectory { objectClasses: while (objectClasses.hasMore()) { String objectClass = objectClasses.next().toString(); // System.out.println(" " + objectClass); - if (objectClass.equals(inetOrgPerson.name())) { + if (objectClass.toLowerCase().equals(inetOrgPerson.name().toLowerCase())) { users.put(key, new LdifUser(this, key, attributes)); break objectClasses; - } else if (objectClass.equals(getGroupObjectClass())) { + } else if (objectClass.toLowerCase().equals(getGroupObjectClass().toLowerCase())) { groups.put(key, new LdifGroup(this, key, attributes)); break objectClasses; }