org.apache.catalina.realm
Class DataSourceRealm

java.lang.Object
  extended byorg.apache.catalina.realm.RealmBase
      extended byorg.apache.catalina.realm.DataSourceRealm
All Implemented Interfaces:
Lifecycle, Realm

public class DataSourceRealm
extends RealmBase

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

Version:
$Revision: 1.3 $
Author:
Glenn L. Nielsen, Craig R. McClanahan, Carson McDonald, Ignacio Ortega

Field Summary
protected  java.lang.String dataSourceName
          The name of the JNDI JDBC DataSource
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.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.
 
Fields inherited from class org.apache.catalina.realm.RealmBase
container, debug, digest, 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
DataSourceRealm()
           
 
Method Summary
 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.
 java.lang.String getDataSourceName()
          Return the name of the JNDI JDBC DataSource.
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 getRoleNameCol()
          Return the column in the user role table that names a role.
 java.lang.String getUserCredCol()
          Return the column in the user table that holds the user's credentials.
 java.lang.String getUserNameCol()
          Return the column in the user table that holds the user's name.
 java.lang.String getUserRoleTable()
          Return the table that holds the relation between user's and roles.
 java.lang.String getUserTable()
          Return the table that holds user data..
 void setDataSourceName(java.lang.String dataSourceName)
          Set the name of the JNDI JDBC DataSource.
 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.
 
Methods inherited from class org.apache.catalina.realm.RealmBase
addLifecycleListener, addPropertyChangeListener, authenticate, authenticate, authenticate, digest, Digest, findLifecycleListeners, getContainer, getDebug, getDigest, getDigest, getInfo, getValidate, hasMessageDigest, hasRole, log, log, main, removeLifecycleListener, removePropertyChangeListener, setContainer, setDebug, setDigest, setValidate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dataSourceName

protected java.lang.String dataSourceName
The name of the JNDI JDBC DataSource


info

protected static 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

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.

Constructor Detail

DataSourceRealm

public DataSourceRealm()
Method Detail

getDataSourceName

public java.lang.String getDataSourceName()
Return the name of the JNDI JDBC DataSource.


setDataSourceName

public void setDataSourceName(java.lang.String dataSourceName)
Set the name of the JNDI JDBC DataSource.

Parameters:
dataSourceName - the name of the JNDI JDBC DataSource

getRoleNameCol

public java.lang.String getRoleNameCol()
Return the column in the user role table that names a role.


setRoleNameCol

public void setRoleNameCol(java.lang.String roleNameCol)
Set the column in the user role table that names a role.

Parameters:
roleNameCol - The column name

getUserCredCol

public java.lang.String getUserCredCol()
Return the column in the user table that holds the user's credentials.


setUserCredCol

public void setUserCredCol(java.lang.String userCredCol)
Set the column in the user table that holds the user's credentials.

Parameters:
userCredCol - The column name

getUserNameCol

public java.lang.String getUserNameCol()
Return the column in the user table that holds the user's name.


setUserNameCol

public void setUserNameCol(java.lang.String userNameCol)
Set the column in the user table that holds the user's name.

Parameters:
userNameCol - The column name

getUserRoleTable

public java.lang.String getUserRoleTable()
Return the table that holds the relation between user's and roles.


setUserRoleTable

public void setUserRoleTable(java.lang.String userRoleTable)
Set the table that holds the relation between user's and roles.

Parameters:
userRoleTable - The table name

getUserTable

public java.lang.String getUserTable()
Return the table that holds user data..


setUserTable

public void setUserTable(java.lang.String userTable)
Set the table that holds user data.

Parameters:
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.

Specified by:
authenticate in interface Realm
Overrides:
authenticate in class RealmBase
Parameters:
username - Username of the Principal to look up
credentials - Password or other credentials to use in authenticating this username

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.