]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java
Remove deprecated APIs
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / 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.apache.jackrabbit.core.security.SecurityConstants;
14 import org.apache.jackrabbit.core.security.principal.AdminPrincipal;
15 import org.argeo.cms.internal.auth.ImpliedByPrincipal;
16 import org.argeo.node.NodeConstants;
17
18 public class SingleUserLoginModule implements LoginModule, AuthConstants {
19 private Subject subject;
20
21 @Override
22 public void initialize(Subject subject, CallbackHandler callbackHandler,
23 Map<String, ?> sharedState, Map<String, ?> options) {
24 this.subject = subject;
25 }
26
27 @Override
28 public boolean login() throws LoginException {
29 return true;
30 }
31
32 @Override
33 public boolean commit() throws LoginException {
34 String username = System.getProperty("user.name");
35 X500Principal principal = new X500Principal("uid=" + username
36 + ",dc=localhost,dc=localdomain");
37 Set<Principal> principals = subject.getPrincipals();
38 principals.add(principal);
39 principals.add(new ImpliedByPrincipal(NodeConstants.ROLE_ADMIN, principal));
40 // Jackrabbit
41 principals.add(new AdminPrincipal(SecurityConstants.ADMIN_ID));
42 return true;
43 }
44
45 @Override
46 public boolean abort() throws LoginException {
47 return true;
48 }
49
50 @Override
51 public boolean logout() throws LoginException {
52 // TODO Auto-generated method stub
53 return true;
54 }
55
56 }