Package org.apache.catalina.realm
Class UserDatabaseRealm
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.realm.RealmBase
org.apache.catalina.realm.UserDatabaseRealm
- All Implemented Interfaces:
MBeanRegistration,Contained,JmxEnabled,Lifecycle,Realm
Implementation of
Realm that is based on an
implementation of UserDatabase made available through the JNDI
resources configured for this instance of Catalina. Set the
resourceName parameter to the JNDI resources name for the
configured instance of UserDatabase that we should consult.- Since:
- 4.1
- Author:
- Craig R. McClanahan
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.catalina.realm.RealmBase
RealmBase.AllRolesModeNested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected UserDatabaseTheUserDatabasewe will use to authenticate users and identify associated roles.protected StringThe global JNDI name of theUserDatabaseresource we will be utilizing.Fields inherited from class org.apache.catalina.realm.RealmBase
allRolesMode, container, containerLog, realmPath, sm, stripRealmForGss, support, validate, x509UsernameRetriever, x509UsernameRetrieverClassNameFields inherited from class org.apache.catalina.util.LifecycleMBeanBase
mserverFields 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidExecute a periodic task, such as reloading, etc.booleanDetermines whether this Realm is configured to obtain the associatedUserDatabasefrom the global JNDI context or a local (web application) JNDI context.protected StringgetPassword(String username) Return the password associated with the given principal's user name.protected PrincipalgetPrincipal(String username) Return the Principal associated with the given user name.booleanReturntrueif the specified Principal has the specified security role, within the context of this Realm; otherwise returnfalse.voidsetLocalJndiResource(boolean localJndiResource) Configure whether this Realm obtains the associatedUserDatabasefrom the global JNDI context or a local (web application) JNDI context.voidsetResourceName(String resourceName) Set the global JNDI name of theUserDatabaseresource we will be using.protected voidPrepare for the beginning of active use of the public methods of this component and implement the requirements ofLifecycleBase.startInternal().protected voidGracefully terminate the active use of the public methods of this component and implement the requirements ofLifecycleBase.stopInternal().Methods inherited from class org.apache.catalina.realm.RealmBase
addPropertyChangeListener, authenticate, authenticate, authenticate, authenticate, authenticate, authenticate, findSecurityConstraints, getAllRolesMode, getContainer, getCredentialHandler, getDigest, getDomainInternal, getObjectNameKeyProperties, getPrincipal, getPrincipal, getPrincipal, getRealmPath, getRealmSuffix, getRoles, getServer, getTransportGuaranteeRedirectStatus, getValidate, getX509UsernameRetrieverClassName, hasMessageDigest, hasResourcePermission, hasRoleInternal, hasUserDataPermission, initInternal, isStripRealmForGss, main, removePropertyChangeListener, setAllRolesMode, setContainer, setCredentialHandler, setRealmPath, setStripRealmForGss, setTransportGuaranteeRedirectStatus, setValidate, setX509UsernameRetrieverClassName, toStringMethods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregisterMethods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.catalina.Realm
isAvailable
-
Field Details
-
database
TheUserDatabasewe will use to authenticate users and identify associated roles. -
resourceName
The global JNDI name of theUserDatabaseresource we will be utilizing.
-
-
Constructor Details
-
UserDatabaseRealm
public UserDatabaseRealm()
-
-
Method Details
-
getResourceName
- Returns:
- the global JNDI name of the
UserDatabaseresource we will be using.
-
setResourceName
Set the global JNDI name of theUserDatabaseresource we will be using.- Parameters:
resourceName- The new global JNDI name
-
getLocalJndiResource
public boolean getLocalJndiResource()Determines whether this Realm is configured to obtain the associatedUserDatabasefrom the global JNDI context or a local (web application) JNDI context.- Returns:
trueif a local JNDI context will be used,falseif the the global JNDI context will be used
-
setLocalJndiResource
public void setLocalJndiResource(boolean localJndiResource) Configure whether this Realm obtains the associatedUserDatabasefrom the global JNDI context or a local (web application) JNDI context.- Parameters:
localJndiResource-trueto use a local JNDI context,falseto use the global JNDI context
-
hasRole
Returntrueif the specified Principal has the specified security role, within the context of this Realm; otherwise returnfalse. This implementation returnstrueif theUserhas the role, or if anyGroupthat theUseris a member of has the role.- Specified by:
hasRolein interfaceRealm- Overrides:
hasRolein classRealmBase- Parameters:
principal- Principal for whom the role is to be checkedrole- Security role to be checkedwrapper- wrapper context for evaluating role- Returns:
trueif the specified Principal has the specified security role, within the context of this Realm; otherwise returnfalse.
-
backgroundProcess
public void backgroundProcess()Description copied from class:RealmBaseExecute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.- Specified by:
backgroundProcessin interfaceRealm- Overrides:
backgroundProcessin classRealmBase
-
getPassword
Return the password associated with the given principal's user name.- Specified by:
getPasswordin classRealmBase- Parameters:
username- The user name- Returns:
- the password associated with the given principal's user name.
-
getPrincipal
Return the Principal associated with the given user name.- Specified by:
getPrincipalin classRealmBase- Parameters:
username- The user name- Returns:
- the Principal associated with the given user name.
-
startInternal
Description copied from class:RealmBasePrepare for the beginning of active use of the public methods of this component and implement the requirements ofLifecycleBase.startInternal().- Overrides:
startInternalin classRealmBase- Throws:
LifecycleException- if this component detects a fatal error that prevents this component from being used
-
stopInternal
Gracefully terminate the active use of the public methods of this component and implement the requirements ofLifecycleBase.stopInternal().- Overrides:
stopInternalin classRealmBase- Throws:
LifecycleException- if this component detects a fatal error that needs to be reported
-