org.openqa.jetty.http
Class JDBCUserRealm
java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap
org.openqa.jetty.http.HashUserRealm
org.openqa.jetty.http.JDBCUserRealm
- All Implemented Interfaces:
- Externalizable, Serializable, Cloneable, Map, 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.20 2006/04/05 12:59:16 janb Exp $
- Author:
- Arkadi Shishlov (arkadi), Fredrik Borgh, Greg Wilkins (gregw), Ben Alex
- See Also:
- Serialized Form
Methods inherited from class org.openqa.jetty.http.HashUserRealm |
addUserToRole, clearSingleSignOn, disassociate, dump, getName, getPrincipal, getSingleSignOn, getSSORealm, isUserInRole, load, popRole, pushRole, put, readExternal, reauthenticate, setName, setSingleSignOn, setSSORealm, toString, writeExternal |
Methods inherited from class java.util.HashMap |
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, putAll, remove, size, values |
JDBCUserRealm
public JDBCUserRealm(String name)
- Constructor.
- Parameters:
name
-
JDBCUserRealm
public JDBCUserRealm(String name,
String config)
throws IOException,
ClassNotFoundException,
InstantiationException,
IllegalAccessException
- Constructor.
- Parameters:
name
- Realm nameconfig
- Filename or url of JDBC connection properties file.
- Throws:
IOException
ClassNotFoundException
InstantiationException
IllegalAccessException
loadConfig
public void loadConfig(String config)
throws IOException
- Load JDBC connection configuration from properties file.
- Parameters:
config
- Filename or url of user properties file.
- Throws:
IOException
logout
public void logout(Principal user)
- Description copied from interface:
UserRealm
- logout a user Principal.
Called by authentication mechanisms (eg FORM) that can detect logout.
- Specified by:
logout
in interface UserRealm
- Overrides:
logout
in class HashUserRealm
- Parameters:
user
- A Principal previously returned from this realm
connectDatabase
public void connectDatabase()
- (re)Connect to database with parameters setup by loadConfig()
authenticate
public Principal authenticate(String username,
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.
Copyright © 2012. All Rights Reserved.