X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.util%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FOsUserDirectory.java;h=3ded7a7a6a6ce28cfd277663b6efbb9e238a4810;hb=00ca9fa781f633e369fd3a66b75368857c396339;hp=fe1ca7643f1a4ecf1596beeb870e9efdc21f7a2d;hpb=9f729eeb8255a9d800ad2506735dda8cc215a135;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.util/src/org/argeo/osgi/useradmin/OsUserDirectory.java b/org.argeo.util/src/org/argeo/osgi/useradmin/OsUserDirectory.java index fe1ca7643..3ded7a7a6 100644 --- a/org.argeo.util/src/org/argeo/osgi/useradmin/OsUserDirectory.java +++ b/org.argeo.util/src/org/argeo/osgi/useradmin/OsUserDirectory.java @@ -11,24 +11,26 @@ import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttributes; import javax.naming.ldap.LdapName; -import org.argeo.naming.LdapAttrs; +import org.argeo.util.naming.LdapAttrs; import org.osgi.framework.Filter; import org.osgi.service.useradmin.User; +/** Pseudo user directory to be used when logging in as OS user. */ public class OsUserDirectory extends AbstractUserDirectory { private final String osUsername = System.getProperty("user.name"); private final LdapName osUserDn; - private final LdifUser osUser; + private final DirectoryUser osUser; public OsUserDirectory(URI uriArg, Dictionary props) { super(uriArg, props, false); try { - osUserDn = new LdapName(LdapAttrs.uid.name() + "=" + osUsername + "," + getUserBase() + "," + getBaseDn()); + osUserDn = new LdapName( + LdapAttrs.uid.name() + "=" + osUsername + "," + getUserBaseRdn() + "," + getBaseDn()); Attributes attributes = new BasicAttributes(); attributes.put(LdapAttrs.uid.name(), osUsername); - osUser = new LdifUser(this, osUserDn, attributes); + osUser = newUser(osUserDn, attributes); } catch (NamingException e) { - throw new UserDirectoryException("Cannot create system user", e); + throw new IllegalStateException("Cannot create system user", e); } } @@ -51,7 +53,7 @@ public class OsUserDirectory extends AbstractUserDirectory { } @Override - protected List doGetRoles(Filter f) { + protected List doGetRoles(LdapName searchBase, Filter f, boolean deep) { List res = new ArrayList<>(); if (f == null || f.match(osUser.getProperties())) res.add(osUser); @@ -63,4 +65,14 @@ public class OsUserDirectory extends AbstractUserDirectory { throw new UnsupportedOperationException(); } + @Override + protected HierarchyUnit doGetHierarchyUnit(LdapName dn) { + return null; + } + + @Override + protected Iterable doGetDirectHierarchyUnits(LdapName searchBase, boolean functionalOnly) { + return new ArrayList<>(); + } + }