From: Mathieu Baudier Date: Sun, 22 Nov 2015 16:48:03 +0000 (+0000) Subject: Add single user login module X-Git-Tag: argeo-commons-2.1.30~7 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=0dfcfef53a629cf38bade4f8605c5b7e507c7436;p=lgpl%2Fargeo-commons.git Add single user login module git-svn-id: https://svn.argeo.org/commons/trunk@8585 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java new file mode 100644 index 000000000..9b65f22ff --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java @@ -0,0 +1,55 @@ +package org.argeo.cms.auth; + +import java.security.Principal; +import java.util.Map; +import java.util.Set; + +import javax.security.auth.Subject; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.login.LoginException; +import javax.security.auth.spi.LoginModule; +import javax.security.auth.x500.X500Principal; + +import org.apache.jackrabbit.core.security.SecurityConstants; +import org.apache.jackrabbit.core.security.principal.AdminPrincipal; +import org.argeo.cms.internal.auth.ImpliedByPrincipal; + +public class SingleUserLoginModule implements LoginModule, AuthConstants { + private Subject subject; + + @Override + public void initialize(Subject subject, CallbackHandler callbackHandler, + Map sharedState, Map options) { + this.subject = subject; + } + + @Override + public boolean login() throws LoginException { + return true; + } + + @Override + public boolean commit() throws LoginException { + String username = System.getProperty("user.name"); + X500Principal principal = new X500Principal("uid=" + username + + ",dc=localhost,dc=localdomain"); + Set principals = subject.getPrincipals(); + principals.add(principal); + principals.add(new ImpliedByPrincipal(ROLE_ADMIN, principal)); + // Jackrabbit + principals.add(new AdminPrincipal(SecurityConstants.ADMIN_ID)); + return true; + } + + @Override + public boolean abort() throws LoginException { + return true; + } + + @Override + public boolean logout() throws LoginException { + // TODO Auto-generated method stub + return true; + } + +} diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/jaas.cfg b/org.argeo.cms/src/org/argeo/cms/internal/kernel/jaas.cfg index e5e3be5cd..61fc28ad0 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/jaas.cfg +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/jaas.cfg @@ -24,8 +24,7 @@ KEYRING { SINGLE_USER { com.sun.security.auth.module.UnixLoginModule requisite; - org.argeo.cms.internal.auth.SingleUserLoginModule requisite; - org.springframework.security.authentication.jaas.SecurityContextLoginModule requisite; + org.argeo.cms.auth.SingleUserLoginModule requisite; }; Jackrabbit {