1 package org
.argeo
.jackrabbit
;
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
;
10 import org
.apache
.jackrabbit
.core
.security
.SecurityConstants
;
11 import org
.apache
.jackrabbit
.core
.security
.principal
.AdminPrincipal
;
13 public class JackrabbitAdminLoginModule
implements LoginModule
{
14 private Subject subject
;
17 public void initialize(Subject subject
, CallbackHandler callbackHandler
,
18 Map
<String
, ?
> sharedState
, Map
<String
, ?
> options
) {
19 this.subject
= subject
;
23 public boolean login() throws LoginException
{
24 // TODO check permission?
29 public boolean commit() throws LoginException
{
30 subject
.getPrincipals().add(
31 new AdminPrincipal(SecurityConstants
.ADMIN_ID
));
36 public boolean abort() throws LoginException
{
41 public boolean logout() throws LoginException
{
42 subject
.getPrincipals().removeAll(
43 subject
.getPrincipals(AdminPrincipal
.class));