Give admin role to OS user.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / CmsAuthUtils.java
index 9a60e913465eb530c4ebba7be3ecba72791681a9..5e59187e0dad574a1283970aca39d851cf618342 100644 (file)
@@ -13,6 +13,10 @@ import javax.security.auth.x500.X500Principal;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
+import org.argeo.api.NodeConstants;
+import org.argeo.api.security.AnonymousPrincipal;
+import org.argeo.api.security.DataAdminPrincipal;
+import org.argeo.api.security.NodeSecurityUtils;
 //import org.apache.jackrabbit.core.security.AnonymousPrincipal;
 //import org.apache.jackrabbit.core.security.SecurityConstants;
 //import org.apache.jackrabbit.core.security.principal.AdminPrincipal;
@@ -21,10 +25,6 @@ import org.argeo.cms.internal.auth.CmsSessionImpl;
 import org.argeo.cms.internal.auth.ImpliedByPrincipal;
 import org.argeo.cms.internal.http.WebCmsSessionImpl;
 import org.argeo.cms.internal.kernel.Activator;
-import org.argeo.node.NodeConstants;
-import org.argeo.node.security.AnonymousPrincipal;
-import org.argeo.node.security.DataAdminPrincipal;
-import org.argeo.node.security.NodeSecurityUtils;
 import org.argeo.osgi.useradmin.AuthenticatingUser;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.InvalidSyntaxException;
@@ -44,6 +44,8 @@ class CmsAuthUtils {
        final static String SHARED_STATE_SPNEGO_TOKEN = "org.argeo.cms.auth.spnegoToken";
        final static String SHARED_STATE_SPNEGO_OUT_TOKEN = "org.argeo.cms.auth.spnegoOutToken";
        final static String SHARED_STATE_CERTIFICATE_CHAIN = "org.argeo.cms.auth.certificateChain";
+       final static String SHARED_STATE_REMOTE_ADDR = "org.argeo.cms.auth.remote.addr";
+       final static String SHARED_STATE_REMOTE_PORT = "org.argeo.cms.auth.remote.port";
 
        static void addAuthorization(Subject subject, Authorization authorization) {
                assert subject != null;
@@ -75,6 +77,10 @@ class CmsAuthUtils {
                                principals.add(userPrincipal);
                                // principals.add(new ImpliedByPrincipal(NodeSecurityUtils.ROLE_USER_NAME,
                                // userPrincipal));
+
+                               if (Activator.isSingleUser()) {
+                                       principals.add(new ImpliedByPrincipal(NodeSecurityUtils.ROLE_ADMIN_NAME, userPrincipal));
+                               }
                        }
 
                        // Add roles provided by authorization