]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/security/jackrabbit/ArgeoAuthContext.java
Store UI context data in CMS View.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / security / jackrabbit / ArgeoAuthContext.java
1 package org.argeo.security.jackrabbit;
2
3 import javax.security.auth.Subject;
4 import javax.security.auth.callback.CallbackHandler;
5 import javax.security.auth.login.LoginContext;
6 import javax.security.auth.login.LoginException;
7
8 import org.apache.jackrabbit.core.security.authentication.AuthContext;
9
10 /** Wraps a regular {@link LoginContext}, using the proper class loader. */
11 class ArgeoAuthContext implements AuthContext {
12 private LoginContext lc;
13
14 public ArgeoAuthContext(String appName, Subject subject, CallbackHandler callbackHandler) {
15 try {
16 lc = new LoginContext(appName, subject, callbackHandler);
17 } catch (LoginException e) {
18 throw new IllegalStateException("Cannot configure Jackrabbit login context", e);
19 }
20 }
21
22 @Override
23 public void login() throws LoginException {
24 lc.login();
25 }
26
27 @Override
28 public Subject getSubject() {
29 return lc.getSubject();
30 }
31
32 @Override
33 public void logout() throws LoginException {
34 lc.logout();
35 }
36
37 }