Introduce CMS Message Dialog and improve l10n
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeUserAdmin.java
index 436d30058839cb330d6471e67f277180cbbb8b19..dc9d33a3b5fa9bcb7751fb269c288786ba003b7e 100644 (file)
@@ -14,6 +14,7 @@ import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import javax.naming.ldap.LdapName;
 import javax.security.auth.Subject;
@@ -28,14 +29,12 @@ import javax.transaction.TransactionManager;
 
 import org.apache.commons.httpclient.auth.AuthPolicy;
 import org.apache.commons.httpclient.auth.CredentialsProvider;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
 import org.apache.commons.httpclient.params.DefaultHttpParams;
 import org.apache.commons.httpclient.params.HttpMethodParams;
 import org.apache.commons.httpclient.params.HttpParams;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.CmsException;
-import org.argeo.cms.internal.http.NodeHttp;
 import org.argeo.cms.internal.http.client.HttpCredentialProvider;
 import org.argeo.cms.internal.http.client.SpnegoAuthScheme;
 import org.argeo.naming.DnsBrowser;
@@ -58,6 +57,7 @@ import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.cm.ConfigurationException;
 import org.osgi.service.cm.ManagedServiceFactory;
+import org.osgi.service.useradmin.Authorization;
 import org.osgi.service.useradmin.UserAdmin;
 import org.osgi.util.tracker.ServiceTracker;
 
@@ -137,15 +137,15 @@ class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServiceFactor
                        log.debug("User directory " + userDirectory.getBaseDn() + " [" + u.getScheme() + "] enabled."
                                        + (realm != null ? " " + realm + " realm." : ""));
 
-               if (!isSystemRolesBaseDn(baseDn)) {
-                       if (userAdminReg != null)
-                               userAdminReg.unregister();
-                       // register self as main user admin
-                       Dictionary<String, Object> userAdminregProps = currentState();
-                       userAdminregProps.put(NodeConstants.CN, NodeConstants.DEFAULT);
-                       userAdminregProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
-                       userAdminReg = bc.registerService(UserAdmin.class, this, userAdminregProps);
-               }
+               // if (isSystemRolesBaseDn(baseDn)) {
+               if (userAdminReg != null)
+                       userAdminReg.unregister();
+               // register self as main user admin
+               Dictionary<String, Object> userAdminregProps = currentState();
+               userAdminregProps.put(NodeConstants.CN, NodeConstants.DEFAULT);
+               userAdminregProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+               userAdminReg = bc.registerService(UserAdmin.class, this, userAdminregProps);
+               // }
        }
 
        @Override
@@ -162,6 +162,15 @@ class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServiceFactor
                return "Node User Admin";
        }
 
+       @Override
+       protected void addAbstractSystemRoles(Authorization rawAuthorization, Set<String> sysRoles) {
+               if (rawAuthorization.getName() == null) {
+                       sysRoles.add(NodeConstants.ROLE_ANONYMOUS);
+               } else {
+                       sysRoles.add(NodeConstants.ROLE_USER);
+               }
+       }
+
        protected void postAdd(AbstractUserDirectory userDirectory) {
                // JTA
                TransactionManager tm = tmTracker.getService();
@@ -203,7 +212,7 @@ class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServiceFactor
                        // schemes.add(AuthPolicy.BASIC);// incompatible with Basic
                        params.setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, schemes);
                        params.setParameter(CredentialsProvider.PROVIDER, new HttpCredentialProvider());
-                       params.setParameter(HttpMethodParams.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
+                       params.setParameter(HttpMethodParams.COOKIE_POLICY, KernelConstants.COOKIE_POLICY_BROWSER_COMPATIBILITY);
                        // params.setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
                }
        }