View Javadoc
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  }