]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeUserAdmin.java
Log message for OSGi exceptions
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeUserAdmin.java
index f1132a64260a1ebca5d9e41011aa79ff195442f4..e8977fa37466858eb32698ae2db94b2e03db3f3f 100644 (file)
@@ -29,7 +29,6 @@ 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;
@@ -87,6 +86,7 @@ class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServiceFactor
        private GSSCredential acceptorCredentials;
 
        private boolean singleUser = false;
+       private boolean systemRolesAvailable = false;
 
        public NodeUserAdmin(String systemRolesBaseDn) {
                super(systemRolesBaseDn);
@@ -138,7 +138,13 @@ class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServiceFactor
                        log.debug("User directory " + userDirectory.getBaseDn() + " [" + u.getScheme() + "] enabled."
                                        + (realm != null ? " " + realm + " realm." : ""));
 
-               if (!isSystemRolesBaseDn(baseDn)) {
+               if (isSystemRolesBaseDn(baseDn))
+                       systemRolesAvailable = true;
+
+               // start publishing only when system roles are available
+               if (systemRolesAvailable) {
+                       // The list of baseDns is published as properties
+                       // TODO clients should rather reference USerDirectory services
                        if (userAdminReg != null)
                                userAdminReg.unregister();
                        // register self as main user admin
@@ -162,14 +168,12 @@ class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServiceFactor
        public String getName() {
                return "Node User Admin";
        }
-       
-       
 
        @Override
        protected void addAbstractSystemRoles(Authorization rawAuthorization, Set<String> sysRoles) {
-               if(rawAuthorization.getName()==null) {
+               if (rawAuthorization.getName() == null) {
                        sysRoles.add(NodeConstants.ROLE_ANONYMOUS);
-               }else {
+               } else {
                        sysRoles.add(NodeConstants.ROLE_USER);
                }
        }
@@ -215,7 +219,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);
                }
        }