X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fosgi%2FNodeUserAdmin.java;h=da67c733d0f1c3f0ce5249016b19aa426b7dbee0;hb=333f1fbd809a57b74e9376d074825d14722d7f9d;hp=4eda98c35c6087bb36527a98781f26ab7eb3d2fd;hpb=b843d903237a2a4192c40d8c933e71137284050b;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java b/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java index 4eda98c35..da67c733d 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java @@ -5,15 +5,11 @@ import java.util.HashMap; import java.util.Hashtable; import java.util.Map; -import javax.naming.InvalidNameException; -import javax.naming.ldap.LdapName; - import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsLog; import org.argeo.cms.internal.runtime.CmsUserAdmin; -import org.argeo.cms.internal.runtime.KernelConstants; -import org.argeo.osgi.useradmin.UserAdminConf; import org.argeo.osgi.useradmin.UserDirectory; +import org.argeo.util.directory.DirectoryConf; import org.osgi.framework.Constants; import org.osgi.service.cm.ConfigurationException; import org.osgi.service.cm.ManagedServiceFactory; @@ -23,26 +19,22 @@ import org.osgi.service.useradmin.UserAdmin; * Aggregates multiple {@link UserDirectory} and integrates them with system * roles. */ -public class NodeUserAdmin extends CmsUserAdmin implements ManagedServiceFactory, KernelConstants { +@Deprecated +public class NodeUserAdmin extends CmsUserAdmin implements ManagedServiceFactory { private final static CmsLog log = CmsLog.getLog(NodeUserAdmin.class); // OSGi - private Map pidToBaseDn = new HashMap<>(); + private Map pidToBaseDn = new HashMap<>(); @Override public void updated(String pid, Dictionary properties) throws ConfigurationException { - LdapName baseDn; - try { - baseDn = new LdapName((String) properties.get(UserAdminConf.baseDn.name())); - } catch (InvalidNameException e) { - throw new IllegalArgumentException(e); - } + String basePath = (String) properties.get(DirectoryConf.baseDn.name()); // FIXME make updates more robust - if (pidToBaseDn.containsValue(baseDn)) { + if (pidToBaseDn.containsValue(basePath)) { if (log.isDebugEnabled()) - log.debug("Ignoring user directory update of " + baseDn); + log.debug("Ignoring user directory update of " + basePath); return; } @@ -50,14 +42,14 @@ public class NodeUserAdmin extends CmsUserAdmin implements ManagedServiceFactory // OSGi Hashtable regProps = new Hashtable<>(); regProps.put(Constants.SERVICE_PID, pid); - if (isSystemRolesBaseDn(baseDn)) + if (isSystemRolesBaseDn(basePath)) regProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE); - regProps.put(UserAdminConf.baseDn.name(), baseDn); + regProps.put(DirectoryConf.baseDn.name(), basePath); CmsActivator.getBundleContext().registerService(UserDirectory.class, userDirectory, regProps); - pidToBaseDn.put(pid, baseDn); + pidToBaseDn.put(pid, basePath); - if (isSystemRolesBaseDn(baseDn)) { + if (isSystemRolesBaseDn(basePath)) { // publishes itself as user admin only when system roles are available Dictionary userAdminregProps = new Hashtable<>(); userAdminregProps.put(CmsConstants.CN, CmsConstants.DEFAULT); @@ -71,8 +63,8 @@ public class NodeUserAdmin extends CmsUserAdmin implements ManagedServiceFactory // assert pidToServiceRegs.get(pid) != null; assert pidToBaseDn.get(pid) != null; // pidToServiceRegs.remove(pid).unregister(); - LdapName baseDn = pidToBaseDn.remove(pid); - removeUserDirectory(baseDn); + String basePath = pidToBaseDn.remove(pid); + removeUserDirectory(basePath); } @Override