]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/auth/DataAdminLoginModule.java
Fix automated Kerberos config
[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.security.DataAdminPrincipal;
11
12 /** Logs a system process as data admin */
13 public class DataAdminLoginModule implements LoginModule {
14 private Subject subject;
15
16 @Override
17 public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState,
18 Map<String, ?> options) {
19 this.subject = subject;
20 }
21
22 @Override
23 public boolean login() throws LoginException {
24 // TODO check permission?
25 return true;
26 }
27
28 @Override
29 public boolean commit() throws LoginException {
30 subject.getPrincipals().add(new DataAdminPrincipal());
31 return true;
32 }
33
34 @Override
35 public boolean abort() throws LoginException {
36 return true;
37 }
38
39 @Override
40 public boolean logout() throws LoginException {
41 subject.getPrincipals().removeAll(subject.getPrincipals(DataAdminPrincipal.class));
42 return true;
43 }
44 }