Package org.apache.catalina.realm
Class JAASMemoryLoginModule
- java.lang.Object
-
- org.apache.catalina.util.LifecycleBase
-
- org.apache.catalina.util.LifecycleMBeanBase
-
- org.apache.catalina.realm.RealmBase
-
- org.apache.catalina.realm.MemoryRealm
-
- org.apache.catalina.realm.JAASMemoryLoginModule
-
- All Implemented Interfaces:
MBeanRegistration
,LoginModule
,Contained
,JmxEnabled
,Lifecycle
,Realm
public class JAASMemoryLoginModule extends MemoryRealm implements LoginModule
Implementation of the JAAS LoginModule interface, primarily for use in testing
JAASRealm
. It utilizes an XML-format data file of username/password/role information identical to that supported byorg.apache.catalina.realm.MemoryRealm
.This class recognizes the following string-valued options, which are specified in the configuration file and passed to
initialize(Subject, CallbackHandler, Map, Map)
in theoptions
argument:- pathname - Relative (to the pathname specified by the "catalina.base" system property) or
absolute pathname to the XML file containing our user information, in the format supported by
MemoryRealm
. The default value matches the MemoryRealm default. - credentialHandlerClassName - The fully qualified class name of the CredentialHandler to use. If
not specified,
MessageDigestCredentialHandler
will be used. - Any additional options will be used to identify and call setters on the
CredentialHandler
. For example,algorithm=SHA256
would result in a call toMessageDigestCredentialHandler.setAlgorithm(String)
with a parameter of"SHA256"
IMPLEMENTATION NOTE - This class implements
Realm
only to satisfy the calling requirements of theGenericPrincipal
constructor. It does not actually perform the functionality required of aRealm
implementation.- Author:
- Craig R. McClanahan
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.catalina.realm.RealmBase
RealmBase.AllRolesMode
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
Fields Modifier and Type Field Description protected CallbackHandler
callbackHandler
The callback handler responsible for answering our requests.protected boolean
committed
Has our owncommit()
returned successfully?protected Map<String,?>
options
The configuration information for thisLoginModule
.protected String
pathname
The absolute or relative pathname to the XML configuration file.protected Principal
principal
ThePrincipal
identified by our validation, ornull
if validation failed.protected Map<String,?>
sharedState
The state information that is shared with other configuredLoginModule
instances.protected Subject
subject
The subject for which we are performing authentication.-
Fields inherited from class org.apache.catalina.realm.RealmBase
allRolesMode, container, containerLog, realmPath, sm, stripRealmForGss, support, USER_ATTRIBUTES_DELIMITER, USER_ATTRIBUTES_WILDCARD, userAttributes, userAttributesList, validate, x509UsernameRetriever, x509UsernameRetrieverClassName
-
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
-
Constructor Summary
Constructors Constructor Description JAASMemoryLoginModule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
abort()
boolean
commit()
void
initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
protected void
load()
Load the contents of our configuration file.boolean
login()
boolean
logout()
-
Methods inherited from class org.apache.catalina.realm.MemoryRealm
authenticate, getDigester, getPassword, getPathname, getPrincipal, setPathname, startInternal
-
Methods inherited from class org.apache.catalina.realm.RealmBase
addPropertyChangeListener, authenticate, authenticate, authenticate, authenticate, authenticate, authenticate, backgroundProcess, findSecurityConstraints, getAllRolesMode, getContainer, getCredentialHandler, getDigest, getDigest, getDomainInternal, getObjectNameKeyProperties, getPrincipal, getPrincipal, getRealmPath, getRealmSuffix, getServer, getTransportGuaranteeRedirectStatus, getUserAttributes, getValidate, getX509UsernameRetrieverClassName, hasMessageDigest, hasResourcePermission, hasRole, hasRoleInternal, hasUserDataPermission, initInternal, isStripRealmForGss, main, parseUserAttributes, removePropertyChangeListener, setAllRolesMode, setContainer, setCredentialHandler, setRealmPath, setStripRealmForGss, setTransportGuaranteeRedirectStatus, setUserAttributes, setValidate, setX509UsernameRetrieverClassName, stopInternal, toString
-
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.Realm
isAvailable
-
-
-
-
Field Detail
-
callbackHandler
protected CallbackHandler callbackHandler
The callback handler responsible for answering our requests.
-
committed
protected boolean committed
Has our owncommit()
returned successfully?
-
pathname
protected String pathname
The absolute or relative pathname to the XML configuration file.
-
principal
protected Principal principal
ThePrincipal
identified by our validation, ornull
if validation failed.
-
sharedState
protected Map<String,?> sharedState
The state information that is shared with other configuredLoginModule
instances.
-
subject
protected Subject subject
The subject for which we are performing authentication.
-
-
Method Detail
-
abort
public boolean abort() throws LoginException
- Specified by:
abort
in interfaceLoginModule
- Throws:
LoginException
-
commit
public boolean commit() throws LoginException
- Specified by:
commit
in interfaceLoginModule
- Throws:
LoginException
-
initialize
public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
- Specified by:
initialize
in interfaceLoginModule
-
login
public boolean login() throws LoginException
- Specified by:
login
in interfaceLoginModule
- Throws:
LoginException
-
logout
public boolean logout() throws LoginException
- Specified by:
logout
in interfaceLoginModule
- Throws:
LoginException
-
load
protected void load()
Load the contents of our configuration file.
-
-