1 package org
.argeo
.security
.core
;
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 /** Attach login modules to threads. */
11 public abstract class ThreadedLoginModule
implements LoginModule
{
12 private ThreadLocal
<LoginModule
> loginModule
= new ThreadLocal
<LoginModule
>() {
15 protected LoginModule
initialValue() {
16 return createLoginModule();
21 protected abstract LoginModule
createLoginModule();
24 public void initialize(Subject subject
, CallbackHandler callbackHandler
,
25 Map
<String
, ?
> sharedState
, Map
<String
, ?
> options
) {
26 loginModule
.get().initialize(subject
, callbackHandler
, sharedState
,
31 public boolean login() throws LoginException
{
32 return loginModule
.get().login();
36 public boolean commit() throws LoginException
{
37 return loginModule
.get().commit();
41 public boolean abort() throws LoginException
{
42 return loginModule
.get().abort();
46 public boolean logout() throws LoginException
{
47 return loginModule
.get().logout();