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:
javax.management.MBeanRegistration
,Contained
,JmxEnabled
,Lifecycle
,Realm
public class UserDatabaseRealm extends RealmBase
Implementation ofRealm
that is based on an implementation ofUserDatabase
made available through the global JNDI resources configured for this instance of Catalina. Set theresourceName
parameter to the global JNDI resources name for the configured instance ofUserDatabase
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.AllRolesMode
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
Fields Modifier and Type Field Description protected UserDatabase
database
TheUserDatabase
we will use to authenticate users and identify associated roles.protected java.lang.String
resourceName
The global JNDI name of theUserDatabase
resource we will be utilizing.-
Fields inherited from class org.apache.catalina.realm.RealmBase
allRolesMode, container, containerLog, realmPath, sm, stripRealmForGss, support, 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
Constructors Constructor Description UserDatabaseRealm()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
backgroundProcess()
Execute a periodic task, such as reloading, etc.protected java.lang.String
getPassword(java.lang.String username)
Return the password associated with the given principal's user name.protected java.security.Principal
getPrincipal(java.lang.String username)
Return the Principal associated with the given user name.java.lang.String
getResourceName()
boolean
hasRole(Wrapper wrapper, java.security.Principal principal, java.lang.String role)
Returntrue
if the specified Principal has the specified security role, within the context of this Realm; otherwise returnfalse
.void
setResourceName(java.lang.String resourceName)
Set the global JNDI name of theUserDatabase
resource we will be using.protected void
startInternal()
Prepare for the beginning of active use of the public methods of this component and implement the requirements ofLifecycleBase.startInternal()
.protected void
stopInternal()
Gracefully 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, 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
-
database
protected UserDatabase database
TheUserDatabase
we will use to authenticate users and identify associated roles.
-
resourceName
protected java.lang.String resourceName
The global JNDI name of theUserDatabase
resource we will be utilizing.
-
-
Method Detail
-
getResourceName
public java.lang.String getResourceName()
- Returns:
- the global JNDI name of the
UserDatabase
resource we will be using.
-
setResourceName
public void setResourceName(java.lang.String resourceName)
Set the global JNDI name of theUserDatabase
resource we will be using.- Parameters:
resourceName
- The new global JNDI name
-
hasRole
public boolean hasRole(Wrapper wrapper, java.security.Principal principal, java.lang.String role)
Returntrue
if the specified Principal has the specified security role, within the context of this Realm; otherwise returnfalse
. This implementation returnstrue
if theUser
has the role, or if anyGroup
that theUser
is a member of has the role.- Specified by:
hasRole
in interfaceRealm
- Overrides:
hasRole
in classRealmBase
- Parameters:
principal
- Principal for whom the role is to be checkedrole
- Security role to be checkedwrapper
- wrapper context for evaluating role- Returns:
true
if the specified Principal has the specified security role, within the context of this Realm; otherwise returnfalse
.
-
backgroundProcess
public void backgroundProcess()
Description copied from class:RealmBase
Execute 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:
backgroundProcess
in interfaceRealm
- Overrides:
backgroundProcess
in classRealmBase
-
getPassword
protected java.lang.String getPassword(java.lang.String username)
Return the password associated with the given principal's user name.- Specified by:
getPassword
in classRealmBase
- Parameters:
username
- The user name- Returns:
- the password associated with the given principal's user name.
-
getPrincipal
protected java.security.Principal getPrincipal(java.lang.String username)
Return the Principal associated with the given user name.- Specified by:
getPrincipal
in classRealmBase
- Parameters:
username
- The user name- Returns:
- the Principal associated with the given user name.
-
startInternal
protected void startInternal() throws LifecycleException
Prepare for the beginning of active use of the public methods of this component and implement the requirements ofLifecycleBase.startInternal()
.- Overrides:
startInternal
in classRealmBase
- Throws:
LifecycleException
- if this component detects a fatal error that prevents this component from being used
-
stopInternal
protected void stopInternal() throws LifecycleException
Gracefully terminate the active use of the public methods of this component and implement the requirements ofLifecycleBase.stopInternal()
.- Overrides:
stopInternal
in classRealmBase
- Throws:
LifecycleException
- if this component detects a fatal error that needs to be reported
-
-