## org.apache.catalina.realm
Class UserDatabaseRealm

    java.lang.Object
      org.apache.catalina.realm.RealmBase
          org.apache.catalina.realm.UserDatabaseRealm

All Implemented Interfaces:
  Lifecycle, Realm

public class UserDatabaseRealm
extends RealmBase

Implementation of `Realm` that is based on an implementation of `UserDatabase` made available through the global JNDI resources configured for this instance of Catalina. Set the `resourceName` parameter to the global JNDI resources name for the configured instance of `UserDatabase` that we should consult.

Since:
  4.1
Version:
  $Revision: 466595 $ $Date: 2006-10-21 18:24:41 -0400 (Sat, 21 Oct 2006) $
Author:
  Craig R. McClanahan

Field Summary
`protected UserDatabase` `database` The `UserDatabase` we will use to authenticate users and identify associated roles.
`protected java.lang.String` `info` Descriptive information about this Realm implementation.
`protected static java.lang.String` `name` Descriptive information about this Realm implementation.
`protected java.lang.String` `resourceName` The global JNDI name of the `UserDatabase` resource we will be utilizing.

Fields inherited from class org.apache.catalina.realm.RealmBase
`container, debug, digest, digestEncoding, lifecycle, md, md5Encoder, md5Helper, started, support, validate`

Fields inherited from interface org.apache.catalina.Lifecycle
`AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, START_EVENT, STOP_EVENT`

Constructor Summary
`UserDatabaseRealm()`

Method Summary
`java.lang.String` `getInfo()` Return descriptive information about this Realm implementation and the corresponding version number, in the format `<description>/<version>`.
`protected java.lang.String` `getName()` Return a short name for this Realm implementation.
`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()` Return the global JNDI name of the `UserDatabase` resource we will be using.
`boolean` `hasRole(java.security.Principal principal, java.lang.String role)` Return `true` if the specified Principal has the specified security role, within the context of this Realm; otherwise return `false`.
`void` `setResourceName(java.lang.String resourceName)` Set the global JNDI name of the `UserDatabase` resource we will be using.
`void` `start()` Prepare for active use of the public methods of this Component.
`void` `stop()` Gracefully shut down active use of the public methods of this Component.

Methods inherited from class org.apache.catalina.realm.RealmBase
`addLifecycleListener, addPropertyChangeListener, authenticate, authenticate, authenticate, authenticate, digest, Digest, findLifecycleListeners, getContainer, getDebug, getDigest, getDigest, getDigestEncoding, getPrincipal, getValidate, hasMessageDigest, log, log, main, removeLifecycleListener, removePropertyChangeListener, setContainer, setDebug, setDigest, setDigestEncoding, setValidate`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### database

    protected UserDatabase database

  The `UserDatabase` we will use to authenticate users and identify associated roles.

### info

    protected final java.lang.String info

  Descriptive information about this Realm implementation.

  See Also:
    Constant Field Values

### name

    protected static final java.lang.String name

  Descriptive information about this Realm implementation.

  See Also:
    Constant Field Values

### resourceName

    protected java.lang.String resourceName

  The global JNDI name of the `UserDatabase` resource we will be utilizing.

Constructor Detail

### UserDatabaseRealm

    public UserDatabaseRealm()

Method Detail

### getInfo

    public java.lang.String getInfo()

  Return descriptive information about this Realm implementation and the corresponding version number, in the format `<description>/<version>`.

  Specified by:
    `getInfo` in interface `Realm`
  Overrides:
    `getInfo` in class `RealmBase`

### getResourceName

    public java.lang.String getResourceName()

  Return 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 the `UserDatabase` resource we will be using.

  Parameters:
    `resourceName` - The new global JNDI name

### hasRole

    public boolean hasRole(java.security.Principal principal,
                           java.lang.String role)

  Return `true` if the specified Principal has the specified security role, within the context of this Realm; otherwise return `false`. This implementation returns `true` if the `User` has the role, or if any `Group` that the `User` is a member of has the role.

  Specified by:
    `hasRole` in interface `Realm`
  Overrides:
    `hasRole` in class `RealmBase`
  Parameters:
    `principal` - Principal for whom the role is to be checked
    `role` - Security role to be checked

### getName

    protected java.lang.String getName()

  Return a short name for this Realm implementation.

  Specified by:
    `getName` in class `RealmBase`

### 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 class `RealmBase`

### getPrincipal

    protected java.security.Principal getPrincipal(java.lang.String username)

  Return the Principal associated with the given user name.

  Specified by:
    `getPrincipal` in class `RealmBase`

### start

    public void start()
               throws LifecycleException

  Prepare for active use of the public methods of this Component.

  Specified by:
    `start` in interface `Lifecycle`
  Overrides:
    `start` in class `RealmBase`
  Throws:
    `LifecycleException` - if this component detects a fatal error that prevents it from being started

### stop

    public void stop()
              throws LifecycleException

  Gracefully shut down active use of the public methods of this Component.

  Specified by:
    `stop` in interface `Lifecycle`
  Overrides:
    `stop` in class `RealmBase`
  Throws:
    `LifecycleException` - if this component detects a fatal error that needs to be reported

Copyright © 2000-2002 Apache Software Foundation. All Rights Reserved.