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
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 by org.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 the options
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 the GenericPrincipal
constructor. It does not actually perform the functionality
required of a Realm
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
Modifier and TypeFieldDescriptionprotected CallbackHandler
The callback handler responsible for answering our requests.protected boolean
Has our owncommit()
returned successfully?The configuration information for thisLoginModule
.protected String
The absolute or relative pathname to the XML configuration file.protected Principal
ThePrincipal
identified by our validation, ornull
if validation failed.The state information that is shared with other configuredLoginModule
instances.protected 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 class org.apache.catalina.util.LifecycleMBeanBase
mserver
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
-
Method Summary
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, getPrincipal, getPrincipal, getRealmPath, getRealmSuffix, getRoles, 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 Details
-
callbackHandler
The callback handler responsible for answering our requests. -
committed
protected boolean committedHas our owncommit()
returned successfully? -
options
The configuration information for thisLoginModule
. -
pathname
The absolute or relative pathname to the XML configuration file. -
principal
ThePrincipal
identified by our validation, ornull
if validation failed. -
subject
The subject for which we are performing authentication.
-
-
Constructor Details
-
JAASMemoryLoginModule
public JAASMemoryLoginModule()
-
-
Method Details
-
abort
- Specified by:
abort
in interfaceLoginModule
- Throws:
LoginException
-
commit
- 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
- Specified by:
login
in interfaceLoginModule
- Throws:
LoginException
-
logout
- Specified by:
logout
in interfaceLoginModule
- Throws:
LoginException
-
load
protected void load()Load the contents of our configuration file.
-