X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fosgi%2Fuseradmin%2FDirectoryUserAdmin.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fosgi%2Fuseradmin%2FDirectoryUserAdmin.java;h=47cf5d3782177aa61362d7dda4aa57f10fc2067b;hp=03f17e61f35b1405956203a863ee158394b09442;hb=b95462873703848193e56fcbe997693630db6121;hpb=55d88fba80cec198a0f11ba7545e19878c51fc5e diff --git a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java index 03f17e61f..47cf5d378 100644 --- a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java +++ b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java @@ -25,15 +25,15 @@ import javax.naming.ldap.Rdn; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosTicket; +import org.argeo.api.acr.ldap.LdapNameUtils; +import org.argeo.api.cms.directory.CmsRole; import org.argeo.api.cms.directory.DirectoryDigestUtils; -import org.argeo.api.cms.directory.CmsUser; import org.argeo.api.cms.directory.HierarchyUnit; import org.argeo.api.cms.directory.UserDirectory; import org.argeo.cms.directory.ldap.AbstractLdapDirectory; import org.argeo.cms.directory.ldap.LdapDao; import org.argeo.cms.directory.ldap.LdapEntry; import org.argeo.cms.directory.ldap.LdapEntryWorkingCopy; -import org.argeo.cms.directory.ldap.LdapNameUtils; import org.argeo.cms.directory.ldap.LdifDao; import org.argeo.cms.runtime.DirectoryConf; import org.argeo.cms.util.CurrentSubject; @@ -126,30 +126,30 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm } @Override - public String getRolePath(Role role) { + public String getRolePath(CmsRole role) { return nameToRelativePath(LdapNameUtils.toLdapName(role.getName())); } @Override - public String getRoleSimpleName(Role role) { + public String getRoleSimpleName(CmsRole role) { LdapName dn = LdapNameUtils.toLdapName(role.getName()); String name = LdapNameUtils.getLastRdnValue(dn); return name; } @Override - public Role getRoleByPath(String path) { + public CmsRole getRoleByPath(String path) { LdapEntry entry = doGetRole(pathToName(path)); - if (!(entry instanceof Role)) { + if (!(entry instanceof CmsRole)) { return null; // throw new IllegalStateException("Path must be a UserAdmin Role."); } else { - return (Role) entry; + return (CmsRole) entry; } } - protected List getAllRoles(CmsUser user) { - List allRoles = new ArrayList(); + protected List getAllRoles(CmsOsgiUser user) { + List allRoles = new ArrayList(); if (user != null) { collectRoles((LdapEntry) user, allRoles); allRoles.add(user); @@ -158,17 +158,17 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm return allRoles; } - private void collectRoles(LdapEntry user, List allRoles) { + private void collectRoles(LdapEntry user, List allRoles) { List allEntries = new ArrayList<>(); LdapEntry entry = user; collectGroups(entry, allEntries); for (LdapEntry e : allEntries) { - if (e instanceof Role) - allRoles.add((Role) e); + if (e instanceof CmsOsgiRole) + allRoles.add((CmsOsgiRole) e); } } - private void collectAnonymousRoles(List allRoles) { + private void collectAnonymousRoles(List allRoles) { // TODO gather anonymous roles } @@ -184,23 +184,23 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm return res.toArray(new Role[res.size()]); } - List getRoles(LdapName searchBase, String filter, boolean deep) throws InvalidSyntaxException { + List getRoles(LdapName searchBase, String filter, boolean deep) throws InvalidSyntaxException { LdapEntryWorkingCopy wc = getWorkingCopy(); // Filter f = filter != null ? FrameworkUtil.createFilter(filter) : null; List searchRes = getDirectoryDao().doGetEntries(searchBase, filter, deep); - List res = new ArrayList<>(); + List res = new ArrayList<>(); for (LdapEntry entry : searchRes) - res.add((CmsUser) entry); + res.add((CmsOsgiUser) entry); if (wc != null) { - for (Iterator it = res.iterator(); it.hasNext();) { - CmsUser user = (CmsUser) it.next(); + for (Iterator it = res.iterator(); it.hasNext();) { + CmsOsgiUser user = it.next(); LdapName dn = LdapNameUtils.toLdapName(user.getName()); if (wc.getDeletedData().containsKey(dn)) it.remove(); } Filter f = filter != null ? FrameworkUtil.createFilter(filter) : null; for (LdapEntry ldapEntry : wc.getNewData().values()) { - CmsUser user = (CmsUser) ldapEntry; + CmsOsgiUser user = (CmsOsgiUser) ldapEntry; if (f == null || f.match(user.getProperties())) res.add(user); } @@ -213,7 +213,7 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm @Override public User getUser(String key, String value) { // TODO check value null or empty - List collectedUsers = new ArrayList(); + List collectedUsers = new ArrayList<>(); if (key != null) { doGetUser(key, value, collectedUsers); } else { @@ -229,11 +229,11 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm return null; } - protected void doGetUser(String key, String value, List collectedUsers) { + protected void doGetUser(String key, String value, List collectedUsers) { String f = "(" + key + "=" + value + ")"; List users = getDirectoryDao().doGetEntries(getBaseDn(), f, true); for (LdapEntry entry : users) - collectedUsers.add((CmsUser) entry); + collectedUsers.add((CmsOsgiUser) entry); } @Override @@ -242,9 +242,9 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm return new LdifAuthorization(user, getAllRoles(null)); } LdapName userName = toLdapName(user.getName()); - if (isExternal(userName) && user instanceof LdapEntry) { - List allRoles = new ArrayList(); - collectRoles((LdapEntry) user, allRoles); + if (isExternal(userName) && user instanceof LdapEntry ldapEntry) { + List allRoles = new ArrayList<>(); + collectRoles(ldapEntry, allRoles); return new LdifAuthorization(user, allRoles); } else { @@ -263,8 +263,8 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm return getAuthorizationFromScoped(scopedUserAdmin, user); } - if (user instanceof CmsUser) { - return new LdifAuthorization(user, getAllRoles((CmsUser) user)); + if (user instanceof CmsOsgiUser u) { + return new LdifAuthorization(user, getAllRoles(u)); } else { // bind with authenticating user DirectoryUserAdmin scopedUserAdmin = scope(user).orElseThrow(); @@ -275,7 +275,7 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm private Authorization getAuthorizationFromScoped(DirectoryUserAdmin scopedUserAdmin, User user) { try { - CmsUser directoryUser = (CmsUser) scopedUserAdmin.getRole(user.getName()); + CmsOsgiUser directoryUser = (CmsOsgiUser) scopedUserAdmin.getRole(user.getName()); if (directoryUser == null) throw new IllegalStateException("No scoped user found for " + user); LdifAuthorization authorization = new LdifAuthorization(directoryUser, @@ -348,7 +348,7 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm * HIERARCHY */ @Override - public HierarchyUnit getHierarchyUnit(Role role) { + public HierarchyUnit getHierarchyUnit(CmsRole role) { LdapName dn = LdapNameUtils.toLdapName(role.getName()); LdapName huDn = LdapNameUtils.getParent(dn); HierarchyUnit hierarchyUnit = getDirectoryDao().doGetHierarchyUnit(huDn); @@ -358,7 +358,7 @@ public class DirectoryUserAdmin extends AbstractLdapDirectory implements UserAdm } @Override - public Iterable getHierarchyUnitRoles(HierarchyUnit hierarchyUnit, String filter, boolean deep) { + public Iterable getHierarchyUnitRoles(HierarchyUnit hierarchyUnit, String filter, boolean deep) { LdapName dn = LdapNameUtils.toLdapName(hierarchyUnit.getBase()); try { return getRoles(dn, filter, deep);