]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.core/src/org/argeo/security/core/SystemLoginModule.java
Node registration
[lgpl/argeo-commons.git] / org.argeo.security.core / src / org / argeo / security / core / SystemLoginModule.java
1 package org.argeo.security.core;
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.security.SystemAuth;
11
12 public class SystemLoginModule 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 SystemAuth());
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 }