]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/auth/DataAdminLoginModule.java
Continue framework clean up.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / DataAdminLoginModule.java
1 package org.argeo.cms.auth;
2
3 import java.util.Map;
4
5 import javax.security.auth.Subject;
6 import javax.security.auth.callback.CallbackHandler;
7 import javax.security.auth.login.LoginException;
8 import javax.security.auth.spi.LoginModule;
9
10 import org.argeo.node.DataAdminPrincipal;
11
12 public class DataAdminLoginModule implements LoginModule {
13 private Subject subject;
14
15 @Override
16 public void initialize(Subject subject, CallbackHandler callbackHandler,
17 Map<String, ?> sharedState, Map<String, ?> options) {
18 this.subject = subject;
19 }
20
21 @Override
22 public boolean login() throws LoginException {
23 // TODO check permission?
24 return true;
25 }
26
27 @Override
28 public boolean commit() throws LoginException {
29 subject.getPrincipals().add(new DataAdminPrincipal());
30 return true;
31 }
32
33 @Override
34 public boolean abort() throws LoginException {
35 return true;
36 }
37
38 @Override
39 public boolean logout() throws LoginException {
40 // remove ALL credentials (e.g. additional Jackrabbit credentials)
41 subject.getPrincipals().clear();
42 return true;
43 }
44
45 }