5 import javax
.security
.auth
.AuthPermission
;
6 import javax
.security
.auth
.Subject
;
7 import javax
.security
.auth
.callback
.CallbackHandler
;
8 import javax
.security
.auth
.login
.LoginException
;
9 import javax
.security
.auth
.spi
.LoginModule
;
11 import org
.argeo
.api
.security
.DataAdminPrincipal
;
14 * Log-in a system process as data admin. Protection is via
15 * {@link AuthPermission} on this login module, so if it can be accessed it will
18 public class DataAdminLoginModule
implements LoginModule
{
19 private Subject subject
;
22 public void initialize(Subject subject
, CallbackHandler callbackHandler
, Map
<String
, ?
> sharedState
,
23 Map
<String
, ?
> options
) {
24 this.subject
= subject
;
28 public boolean login() throws LoginException
{
33 public boolean commit() throws LoginException
{
34 subject
.getPrincipals().add(new DataAdminPrincipal());
39 public boolean abort() throws LoginException
{
44 public boolean logout() throws LoginException
{
45 subject
.getPrincipals().removeAll(subject
.getPrincipals(DataAdminPrincipal
.class));