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
;
14 public class JackrabbitAdminLoginModule
implements LoginModule
{
15 private Subject subject
;
18 public void initialize(Subject subject
, CallbackHandler callbackHandler
,
19 Map
<String
, ?
> sharedState
, Map
<String
, ?
> options
) {
20 this.subject
= subject
;
24 public boolean login() throws LoginException
{
25 // TODO check permission?
30 public boolean commit() throws LoginException
{
31 subject
.getPrincipals().add(
32 new AdminPrincipal(SecurityConstants
.ADMIN_ID
));
37 public boolean abort() throws LoginException
{
42 public boolean logout() throws LoginException
{
43 subject
.getPrincipals().removeAll(
44 subject
.getPrincipals(AdminPrincipal
.class));