| org.acegisecurity.userdetails.jdbc.JdbcDaoImpl
JdbcDaoImpl | public class JdbcDaoImpl extends JdbcDaoSupport implements UserDetailsService(Code) | | Retrieves user details (username, password, enabled flag, and authorities) from a JDBC location.
A default database structure is assumed, (see
JdbcDaoImpl.DEF_USERS_BY_USERNAME_QUERY and
JdbcDaoImpl.DEF_AUTHORITIES_BY_USERNAME_QUERY , which most users of this class will need to override, if using an existing
scheme. This may be done by setting the default query strings used. If this does not provide enough flexibility,
another strategy would be to subclass this class and override the
MappingSqlQuery instances used, via the
JdbcDaoImpl.initMappingSqlQueries() extension point.
In order to minimise backward compatibility issues, this DAO does not recognise the expiration of user
accounts or the expiration of user credentials. However, it does recognise and honour the user enabled/disabled
column.
author: Ben Alex author: colin sampaleanu version: $Id: JdbcDaoImpl.java 1784 2007-02-24 21:00:24Z luke_t $ |
Inner Class :protected class AuthoritiesByUsernameMapping extends MappingSqlQuery | |
Inner Class :protected class UsersByUsernameMapping extends MappingSqlQuery | |
DEF_AUTHORITIES_BY_USERNAME_QUERY | final public static String DEF_AUTHORITIES_BY_USERNAME_QUERY(Code) | | |
DEF_USERS_BY_USERNAME_QUERY | final public static String DEF_USERS_BY_USERNAME_QUERY(Code) | | |
authoritiesByUsernameMapping | protected MappingSqlQuery authoritiesByUsernameMapping(Code) | | |
usersByUsernameMapping | protected MappingSqlQuery usersByUsernameMapping(Code) | | |
JdbcDaoImpl | public JdbcDaoImpl()(Code) | | |
addCustomAuthorities | protected void addCustomAuthorities(String username, List authorities)(Code) | | Allows subclasses to add their own granted authorities to the list to be returned in the
User .
Parameters: username - the username, for use by finder methods Parameters: authorities - the current granted authorities, as populated from the authoritiesByUsername mapping |
getAuthoritiesByUsernameQuery | public String getAuthoritiesByUsernameQuery()(Code) | | |
getUsersByUsernameQuery | public String getUsersByUsernameQuery()(Code) | | |
initDao | protected void initDao() throws ApplicationContextException(Code) | | |
initMappingSqlQueries | protected void initMappingSqlQueries()(Code) | | Extension point to allow other MappingSqlQuery objects to be substituted in a subclass
|
isUsernameBasedPrimaryKey | public boolean isUsernameBasedPrimaryKey()(Code) | | |
setAuthoritiesByUsernameQuery | public void setAuthoritiesByUsernameQuery(String queryString)(Code) | | Allows the default query string used to retrieve authorities based on username to be overriden, if
default table or column names need to be changed. The default query is
JdbcDaoImpl.DEF_AUTHORITIES_BY_USERNAME_QUERY ; when modifying this query, ensure that all returned columns are mapped
back to the same column names as in the default query.
Parameters: queryString - The query string to set |
setRolePrefix | public void setRolePrefix(String rolePrefix)(Code) | | Allows a default role prefix to be specified. If this is set to a non-empty value, then it is
automatically prepended to any roles read in from the db. This may for example be used to add the
ROLE_ prefix expected to exist in role names (by default) by some other Acegi Security framework
classes, in the case that the prefix is not already present in the db.
Parameters: rolePrefix - the new prefix |
setUsernameBasedPrimaryKey | public void setUsernameBasedPrimaryKey(boolean usernameBasedPrimaryKey)(Code) | | If true (the default), indicates the
JdbcDaoImpl.getUsersByUsernameQuery() returns a username
in response to a query. If false , indicates that a primary key is used instead. If set to
true , the class will use the database-derived username in the returned UserDetails .
If false , the class will use the
JdbcDaoImpl.loadUserByUsername(String) derived username in the
returned UserDetails .
Parameters: usernameBasedPrimaryKey - true if the mapping queries return the username String ,or false if the mapping returns a database primary key. |
setUsersByUsernameQuery | public void setUsersByUsernameQuery(String usersByUsernameQueryString)(Code) | | Allows the default query string used to retrieve users based on username to be overriden, if default
table or column names need to be changed. The default query is
JdbcDaoImpl.DEF_USERS_BY_USERNAME_QUERY ; when
modifying this query, ensure that all returned columns are mapped back to the same column names as in the
default query. If the 'enabled' column does not exist in the source db, a permanent true value for this column
may be returned by using a query similar to
"SELECT username,password,'true' as enabled FROM users WHERE username = ?"
Parameters: usersByUsernameQueryString - The query string to set |
|
|