]> git.argeo.org Git - lgpl/argeo-commons.git/blob - SingleUserLoginModule.java
801e4af7c24d4c4dad48e8c74a755463d1cad9cf
[lgpl/argeo-commons.git] / SingleUserLoginModule.java
1 package org.argeo.cms.auth;
2
3 import java.security.Principal;
4 import java.util.Map;
5 import java.util.Set;
6
7 import javax.security.auth.Subject;
8 import javax.security.auth.callback.CallbackHandler;
9 import javax.security.auth.login.LoginException;
10 import javax.security.auth.spi.LoginModule;
11 import javax.security.auth.x500.X500Principal;
12
13 import org.argeo.cms.internal.auth.ImpliedByPrincipal;
14 import org.argeo.node.NodeConstants;
15 import org.argeo.node.security.DataAdminPrincipal;
16
17 public class SingleUserLoginModule implements LoginModule {
18 private Subject subject;
19
20 @Override
21 public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState,
22 Map<String, ?> options) {
23 this.subject = subject;
24 }
25
26 @Override
27 public boolean login() throws LoginException {
28 return true;
29 }
30
31 @Override
32 public boolean commit() throws LoginException {
33 String username = System.getProperty("user.name");
34 X500Principal principal = new X500Principal("uid=" + username + ",dc=localhost,dc=localdomain");
35 Set<Principal> principals = subject.getPrincipals();
36 principals.add(principal);
37 principals.add(new ImpliedByPrincipal(NodeConstants.ROLE_ADMIN, principal));
38 principals.add(new DataAdminPrincipal());
39 return true;
40 }
41
42 @Override
43 public boolean abort() throws LoginException {
44 return true;
45 }
46
47 @Override
48 public boolean logout() throws LoginException {
49 // TODO Auto-generated method stub
50 return true;
51 }
52
53 }