]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitAdminLoginModule.java
[maven-release-plugin] prepare release argeo-commons-2.1.47
[lgpl/argeo-commons.git] / org.argeo.jcr / src / org / argeo / jackrabbit / JackrabbitAdminLoginModule.java
1 package org.argeo.jackrabbit;
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.apache.jackrabbit.core.security.SecurityConstants;
11 import org.apache.jackrabbit.core.security.principal.AdminPrincipal;
12
13 public class JackrabbitAdminLoginModule implements LoginModule {
14 private Subject subject;
15
16 @Override
17 public void initialize(Subject subject, CallbackHandler callbackHandler,
18 Map<String, ?> sharedState, 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(
31 new AdminPrincipal(SecurityConstants.ADMIN_ID));
32 return true;
33 }
34
35 @Override
36 public boolean abort() throws LoginException {
37 return true;
38 }
39
40 @Override
41 public boolean logout() throws LoginException {
42 subject.getPrincipals().removeAll(
43 subject.getPrincipals(AdminPrincipal.class));
44 return true;
45 }
46
47 }