org.apache.catalina.realm
クラス JDBCRealm

java.lang.Object
  |
  +--org.apache.catalina.realm.RealmBase
        |
        +--org.apache.catalina.realm.JDBCRealm
すべての実装インタフェース:
Lifecycle, Realm

public class JDBCRealm
extends RealmBase

Implmentation of Realm that works with any JDBC supported database. See the JDBCRealm.howto for more details on how to set up the database and for configuration options.

TODO - Support connection pooling (including message format objects) so that authenticate() does not have to be synchronized.

バージョン:
$Revision: 1.19 $ $Date: 2001/09/07 20:45:12 $
作成者:
Craig R. McClanahan, Carson McDonald, Ignacio Ortega

フィールドの概要
protected  java.lang.String connectionName
          The connection username to use when trying to connect to the database.
protected  java.lang.String connectionPassword
          The connection URL to use when trying to connect to the database.
protected  java.lang.String connectionURL
          The connection URL to use when trying to connect to the database.
protected  java.sql.Connection dbConnection
          The connection to the database.
protected  java.sql.Driver driver
          Instance of the JDBC Driver class we use as a connection factory.
protected  java.lang.String driverName
          The JDBC driver to use.
protected static java.lang.String info
          Descriptive information about this Realm implementation.
protected static java.lang.String name
          Descriptive information about this Realm implementation.
protected  java.sql.PreparedStatement preparedCredentials
          The PreparedStatement to use for authenticating users.
protected  java.sql.PreparedStatement preparedRoles
          The PreparedStatement to use for identifying the roles for a specified user.
protected  java.lang.String roleNameCol
          The column in the user role table that names a role
protected static StringManager sm
          The string manager for this package.
protected  java.lang.String userCredCol
          The column in the user table that holds the user's credintials
protected  java.lang.String userNameCol
          The column in the user table that holds the user's name
protected  java.lang.String userRoleTable
          The table that holds the relation between user's and roles
protected  java.lang.String userTable
          The table that holds user data.
 
クラス org.apache.catalina.realm.RealmBase から継承したフィールド
container, debug, digest, lifecycle, md, md5Encoder, md5Helper, started, support, validate
 
インタフェース org.apache.catalina.Lifecycle から継承したフィールド
START_EVENT, STOP_EVENT
 
コンストラクタの概要
JDBCRealm()
           
 
メソッドの概要
 java.security.Principal authenticate(java.sql.Connection dbConnection, java.lang.String username, java.lang.String credentials)
          Return the Principal associated with the specified username and credentials, if there is one; otherwise return null.
 java.security.Principal authenticate(java.lang.String username, java.lang.String credentials)
          Return the Principal associated with the specified username and credentials, if there is one; otherwise return null.
protected  void close(java.sql.Connection dbConnection)
          Close the specified database connection.
protected  java.sql.PreparedStatement credentials(java.sql.Connection dbConnection, java.lang.String username)
          Return a PreparedStatement configured to perform the SELECT required to retrieve user credentials for the specified username.
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.
protected  java.sql.Connection open()
          Open (if necessary) and return a database connection for use by this Realm.
protected  void release(java.sql.Connection dbConnection)
          Release our use of this connection so that it can be recycled.
protected  java.sql.PreparedStatement roles(java.sql.Connection dbConnection, java.lang.String username)
          Return a PreparedStatement configured to perform the SELECT required to retrieve user roles for the specified username.
 void setConnectionName(java.lang.String connectionName)
          Set the username to use to connect to the database.
 void setConnectionPassword(java.lang.String connectionPassword)
          Set the password to use to connect to the database.
 void setConnectionURL(java.lang.String connectionURL)
          Set the URL to use to connect to the database.
 void setDriverName(java.lang.String driverName)
          Set the JDBC driver that will be used.
 void setRoleNameCol(java.lang.String roleNameCol)
          Set the column in the user role table that names a role.
 void setUserCredCol(java.lang.String userCredCol)
          Set the column in the user table that holds the user's credentials.
 void setUserNameCol(java.lang.String userNameCol)
          Set the column in the user table that holds the user's name.
 void setUserRoleTable(java.lang.String userRoleTable)
          Set the table that holds the relation between user's and roles.
 void setUserTable(java.lang.String userTable)
          Set the table that holds user data.
 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.
 
クラス org.apache.catalina.realm.RealmBase から継承したメソッド
addLifecycleListener, addPropertyChangeListener, authenticate, authenticate, authenticate, digest, Digest, getContainer, getDebug, getDigest, getDigest, getInfo, getValidate, hasMessageDigest, hasRole, log, log, main, removeLifecycleListener, removePropertyChangeListener, setContainer, setDebug, setDigest, setValidate
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

connectionName

protected java.lang.String connectionName
The connection username to use when trying to connect to the database.

connectionPassword

protected java.lang.String connectionPassword
The connection URL to use when trying to connect to the database.

connectionURL

protected java.lang.String connectionURL
The connection URL to use when trying to connect to the database.

dbConnection

protected java.sql.Connection dbConnection
The connection to the database.

driver

protected java.sql.Driver driver
Instance of the JDBC Driver class we use as a connection factory.

driverName

protected java.lang.String driverName
The JDBC driver to use.

info

protected static final java.lang.String info
Descriptive information about this Realm implementation.

name

protected static final java.lang.String name
Descriptive information about this Realm implementation.

preparedCredentials

protected java.sql.PreparedStatement preparedCredentials
The PreparedStatement to use for authenticating users.

preparedRoles

protected java.sql.PreparedStatement preparedRoles
The PreparedStatement to use for identifying the roles for a specified user.

roleNameCol

protected java.lang.String roleNameCol
The column in the user role table that names a role

sm

protected static final StringManager sm
The string manager for this package.

userCredCol

protected java.lang.String userCredCol
The column in the user table that holds the user's credintials

userNameCol

protected java.lang.String userNameCol
The column in the user table that holds the user's name

userRoleTable

protected java.lang.String userRoleTable
The table that holds the relation between user's and roles

userTable

protected java.lang.String userTable
The table that holds user data.
コンストラクタの詳細

JDBCRealm

public JDBCRealm()
メソッドの詳細

setConnectionName

public void setConnectionName(java.lang.String connectionName)
Set the username to use to connect to the database.
パラメータ:
connectionName - Username

setConnectionPassword

public void setConnectionPassword(java.lang.String connectionPassword)
Set the password to use to connect to the database.
パラメータ:
connectionPassword - User password

setConnectionURL

public void setConnectionURL(java.lang.String connectionURL)
Set the URL to use to connect to the database.
パラメータ:
connectionURL - The new connection URL

setDriverName

public void setDriverName(java.lang.String driverName)
Set the JDBC driver that will be used.
パラメータ:
driverName - The driver name

setRoleNameCol

public void setRoleNameCol(java.lang.String roleNameCol)
Set the column in the user role table that names a role.
パラメータ:
roleNameCol - The column name

setUserCredCol

public void setUserCredCol(java.lang.String userCredCol)
Set the column in the user table that holds the user's credentials.
パラメータ:
userCredCol - The column name

setUserNameCol

public void setUserNameCol(java.lang.String userNameCol)
Set the column in the user table that holds the user's name.
パラメータ:
userNameCol - The column name

setUserRoleTable

public void setUserRoleTable(java.lang.String userRoleTable)
Set the table that holds the relation between user's and roles.
パラメータ:
userRoleTable - The table name

setUserTable

public void setUserTable(java.lang.String userTable)
Set the table that holds user data.
パラメータ:
userTable - The table name

authenticate

public java.security.Principal authenticate(java.lang.String username,
                                            java.lang.String credentials)
Return the Principal associated with the specified username and credentials, if there is one; otherwise return null. If there are any errors with the JDBC connection, executing the query or anything we return null (don't authenticate). This event is also logged, and the connection will be closed so that a subsequent request will automatically re-open it.
オーバーライド:
クラス RealmBase 内の authenticate
パラメータ:
username - Username of the Principal to look up
credentials - Password or other credentials to use in authenticating this username

authenticate

public java.security.Principal authenticate(java.sql.Connection dbConnection,
                                            java.lang.String username,
                                            java.lang.String credentials)
                                     throws java.sql.SQLException
Return the Principal associated with the specified username and credentials, if there is one; otherwise return null.
パラメータ:
dbConnection - The database connection to be used
username - Username of the Principal to look up
credentials - Password or other credentials to use in authenticating this username
例外:
java.sql.SQLException - if a database error occurs

close

protected void close(java.sql.Connection dbConnection)
Close the specified database connection.
パラメータ:
dbConnection - The connection to be closed

credentials

protected java.sql.PreparedStatement credentials(java.sql.Connection dbConnection,
                                                 java.lang.String username)
                                          throws java.sql.SQLException
Return a PreparedStatement configured to perform the SELECT required to retrieve user credentials for the specified username.
パラメータ:
dbConnection - The database connection to be used
username - Username for which credentials should be retrieved
例外:
java.sql.SQLException - if a database error occurs

getName

protected java.lang.String getName()
Return a short name for this Realm implementation.
オーバーライド:
クラス RealmBase 内の getName

getPassword

protected java.lang.String getPassword(java.lang.String username)
Return the password associated with the given principal's user name.
オーバーライド:
クラス RealmBase 内の getPassword

getPrincipal

protected java.security.Principal getPrincipal(java.lang.String username)
Return the Principal associated with the given user name.
オーバーライド:
クラス RealmBase 内の getPrincipal

open

protected java.sql.Connection open()
                            throws java.sql.SQLException
Open (if necessary) and return a database connection for use by this Realm.
例外:
java.sql.SQLException - if a database error occurs

release

protected void release(java.sql.Connection dbConnection)
Release our use of this connection so that it can be recycled.
パラメータ:
dbConnnection - The connection to be released

roles

protected java.sql.PreparedStatement roles(java.sql.Connection dbConnection,
                                           java.lang.String username)
                                    throws java.sql.SQLException
Return a PreparedStatement configured to perform the SELECT required to retrieve user roles for the specified username.
パラメータ:
dbConnection - The database connection to be used
username - Username for which roles should be retrieved
例外:
java.sql.SQLException - if a database error occurs

start

public void start()
           throws LifecycleException
Prepare for active use of the public methods of this Component.
オーバーライド:
クラス RealmBase 内の start
例外:
java.lang.IllegalStateException - if this component has already been started
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.
オーバーライド:
クラス RealmBase 内の stop
例外:
java.lang.IllegalStateException - if this component has not been started
LifecycleException - if this component detects a fatal error that needs to be reported


Copyright ? 2000-2001 Apache Software Foundation. All Rights Reserved.