org.mortbay.http
Class JDBCUserRealm
java.lang.Object
|
+--java.util.AbstractMap
|
+--java.util.HashMap
|
+--org.mortbay.http.HashUserRealm
|
+--org.mortbay.http.JDBCUserRealm
- All Implemented Interfaces:
- java.lang.Cloneable, java.io.Externalizable, java.util.Map, java.io.Serializable, SSORealm, UserRealm
- public class JDBCUserRealm
- extends HashUserRealm
HashMapped User Realm with JDBC as data source.
JDBCUserRealm extends HashUserRealm and adds a method to fetch user
information from database.
The authenticate() method checks the inherited HashMap for the user.
If the user is not found, it will fetch details from the database
and populate the inherited HashMap. It then calls the HashUserRealm
authenticate() method to perform the actual authentication.
Periodically (controlled by configuration parameter), internal
hashes are cleared. Caching can be disabled by setting cache
refresh interval to zero.
Uses one database connection that is initialized at startup. Reconnect
on failures. authenticate() is 'synchronized'.
An example properties file for configuration is in
$JETTY_HOME/etc/jdbcRealm.properties
- Version:
- $Id: JDBCUserRealm.java,v 1.12 2003/04/24 23:56:12 bretts Exp $
- Author:
- Arkadi Shishlov (arkadi), Fredrik Borgh, Greg Wilkins (gregw), Ben Alex
- See Also:
- Serialized Form
Constructor Summary |
JDBCUserRealm(java.lang.String name)
Constructor. |
JDBCUserRealm(java.lang.String name,
java.lang.String config)
Constructor. |
Methods inherited from class org.mortbay.http.HashUserRealm |
addUserToRole, clearSingleSignOn, disassociate, dump, getName, getSingleSignOn, getSSORealm, isUserInRole, load, logout, popRole, pushRole, put, readExternal, setName, setSingleSignOn, setSSORealm, toString, writeExternal |
Methods inherited from class java.util.HashMap |
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, putAll, remove, size, values |
Methods inherited from class java.util.AbstractMap |
equals, hashCode |
Methods inherited from class java.lang.Object |
getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Map |
equals, hashCode |
JDBCUserRealm
public JDBCUserRealm(java.lang.String name)
- Constructor.
- Parameters:
name
-
JDBCUserRealm
public JDBCUserRealm(java.lang.String name,
java.lang.String config)
throws java.io.IOException,
java.lang.ClassNotFoundException,
java.lang.InstantiationException,
java.lang.IllegalAccessException
- Constructor.
- Parameters:
name
- Realm nameconfig
- Filename or url of JDBC connection properties file.
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
java.lang.InstantiationException
java.lang.IllegalAccessException
loadConfig
public void loadConfig(java.lang.String config)
throws java.io.IOException
- Load JDBC connection configuration from properties file.
- Parameters:
config
- Filename or url of user properties file.
- Throws:
java.io.IOException
connectDatabase
public void connectDatabase()
- (re)Connect to database with parameters setup by loadConfig()
authenticate
public UserPrincipal authenticate(java.lang.String username,
java.lang.Object credentials,
HttpRequest request)
- Description copied from interface:
UserRealm
- Authenticate a users credentials.
Implementations of this method may adorn the calling context to
assoicate it with the authenticated principal (eg ThreadLocals). If
such context associations are made, they should be considered valid
until a UserRealm.deAuthenticate(UserPrincipal) call is made for this
UserPrincipal.
- Specified by:
authenticate
in interface UserRealm
- Overrides:
authenticate
in class HashUserRealm
- Parameters:
username
- The username.credentials
- The user credentials, normally a String password.request
- The request to be authenticated. Additional
parameters may be extracted or set on this request as needed
for the authentication mechanism (none required for BASIC and
FORM authentication).
- Returns:
- The authenticated UserPrincipal.
authenticate
public UserPrincipal authenticate(java.lang.String username,
java.lang.String credentials,
HttpRequest request)
Copyright ? 2000 Mortbay Consulting Pty. Ltd. All Rights Reserved.