View Javadoc
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  @Deprecated
14  public class JackrabbitAdminLoginModule implements LoginModule {
15  	private Subject subject;
16  
17  	@Override
18  	public void initialize(Subject subject, CallbackHandler callbackHandler,
19  			Map<String, ?> sharedState, Map<String, ?> options) {
20  		this.subject = subject;
21  	}
22  
23  	@Override
24  	public boolean login() throws LoginException {
25  		// TODO check permission?
26  		return true;
27  	}
28  
29  	@Override
30  	public boolean commit() throws LoginException {
31  		subject.getPrincipals().add(
32  				new AdminPrincipal(SecurityConstants.ADMIN_ID));
33  		return true;
34  	}
35  
36  	@Override
37  	public boolean abort() throws LoginException {
38  		return true;
39  	}
40  
41  	@Override
42  	public boolean logout() throws LoginException {
43  		subject.getPrincipals().removeAll(
44  				subject.getPrincipals(AdminPrincipal.class));
45  		return true;
46  	}
47  
48  }