Improve single user login.
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 14 Oct 2020 07:22:36 +0000 (09:22 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 14 Oct 2020 07:22:36 +0000 (09:22 +0200)
org.argeo.cms/src/org/argeo/cms/auth/SingleUserAuthorization.java [new file with mode: 0644]
org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java

diff --git a/org.argeo.cms/src/org/argeo/cms/auth/SingleUserAuthorization.java b/org.argeo.cms/src/org/argeo/cms/auth/SingleUserAuthorization.java
new file mode 100644 (file)
index 0000000..c823948
--- /dev/null
@@ -0,0 +1,27 @@
+package org.argeo.cms.auth;
+
+import org.osgi.service.useradmin.Authorization;
+
+public class SingleUserAuthorization implements Authorization {
+
+       @Override
+       public String getName() {
+               return System.getProperty("user.name");
+       }
+
+       @Override
+       public boolean hasRole(String name) {
+               return true;
+       }
+
+       @Override
+       public String[] getRoles() {
+               return new String[] {};
+       }
+
+       @Override
+       public String toString() {
+               return getName();
+       }
+
+}
index e3da327e6e2e4e1db08c6c004507828d0082005a..8583bc194f7dde537f03de505a444298833c4ae1 100644 (file)
@@ -21,6 +21,7 @@ import org.argeo.api.security.DataAdminPrincipal;
 import org.argeo.cms.internal.auth.ImpliedByPrincipal;
 import org.argeo.naming.LdapAttrs;
 import org.argeo.osgi.useradmin.IpaUtils;
+import org.osgi.service.useradmin.Authorization;
 
 public class SingleUserLoginModule implements LoginModule {
        private final static Log log = LogFactory.getLog(SingleUserLoginModule.class);
@@ -69,6 +70,10 @@ public class SingleUserLoginModule implements LoginModule {
                principals.add(principal);
                principals.add(new ImpliedByPrincipal(NodeConstants.ROLE_ADMIN, principal));
                principals.add(new DataAdminPrincipal());
+               
+               Authorization authorization = new SingleUserAuthorization();
+               subject.getPrivateCredentials().add(authorization);
+
                return true;
        }