java.lang.Object | |||
↳ | org.springframework.dao.support.DaoSupport | ||
↳ | org.springframework.jdbc.core.support.JdbcDaoSupport | ||
↳ | org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl |
![]() |
UserDetailsServiceRetrieves implementation which retrieves the user details (username, password, enabled flag, and authorities) from a database using JDBC queries.
Column |
---|
username |
password |
enabled |
Column |
---|
username |
authority |
DEF_USERS_BY_USERNAME_QUERY
and DEF_AUTHORITIES_BY_USERNAME_QUERY
).
In order to minimise backward compatibility issues, this implementation doesn't recognise the expiration of user accounts or the expiration of user credentials. However, it does recognise and honour the user enabled/disabled column. This should map to a boolean type in the result set (the SQL type will depend on the database you are using). All the other columns map to Strings.
When groups are being used, the tables "groups", "group_members" and "group_authorities" are used. See
DEF_GROUP_AUTHORITIES_BY_USERNAME_QUERY
for the default query which is used to load the group authorities.
Again you can customize this by setting the groupAuthoritiesByUsernameQuery property, but the format of
the rows returned should match the default.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | DEF_AUTHORITIES_BY_USERNAME_QUERY | ||||||||||
String | DEF_GROUP_AUTHORITIES_BY_USERNAME_QUERY | ||||||||||
String | DEF_USERS_BY_USERNAME_QUERY |
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
messages |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Locates the user based on the username.
| |||||||||||
Allows the default query string used to retrieve authorities based on username to be overridden, if
default table or column names need to be changed.
| |||||||||||
Enables loading of authorities (roles) from the authorities table.
| |||||||||||
Enables support for group authorities.
| |||||||||||
Allows the default query string used to retrieve group authorities based on username to be overridden, if
default table or column names need to be changed.
| |||||||||||
Allows a default role prefix to be specified.
| |||||||||||
If
true (the default), indicates the getUsersByUsernameQuery() returns a username
in response to a query. | |||||||||||
Allows the default query string used to retrieve users based on username to be overridden, if default
table or column names need to be changed.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Allows subclasses to add their own granted authorities to the list to be returned in the UserDetails.
| |||||||||||
Can be overridden to customize the creation of the final UserDetailsObject which is
returned by the loadUserByUsername method.
| |||||||||||
Loads authorities by executing the SQL from groupAuthoritiesByUsernameQuery.
| |||||||||||
Loads authorities by executing the SQL from authoritiesByUsernameQuery.
| |||||||||||
Executes the SQL usersByUsernameQuery and returns a list of UserDetails objects.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Locates the user based on the username. In the actual implementation, the search may possibly be case
insensitive, or case insensitive depending on how the implementation instance is configured. In this case, the
UserDetails
object that comes back may have a username that is of a different case than what was
actually requested..
username | the username identifying the user whose data is required. |
---|
null
)UsernameNotFoundException |
---|
Allows the default query string used to retrieve authorities based on username to be overridden, if
default table or column names need to be changed. The default query is 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.
queryString | The SQL query string to set |
---|
Enables loading of authorities (roles) from the authorities table. Defaults to true
Enables support for group authorities. Defaults to false
Allows the default query string used to retrieve group authorities based on username to be overridden, if
default table or column names need to be changed. The default query is DEF_GROUP_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.
queryString | The SQL query string to set |
---|
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 Spring Security classes, in the case that the prefix is not already present in the db.
rolePrefix | the new prefix |
---|
If true
(the default), indicates the 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 loadUserByUsername(String)
derived username in the
returned UserDetails
.
usernameBasedPrimaryKey | true if the mapping queries return the username String ,
or false if the mapping returns a database primary key.
|
---|
Allows the default query string used to retrieve users based on username to be overridden, if default
table or column names need to be changed. The default query is 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 database, 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 = ?"
usersByUsernameQueryString | The query string to set |
---|
Allows subclasses to add their own granted authorities to the list to be returned in the UserDetails.
username | the username, for use by finder methods |
---|---|
authorities | the current granted authorities, as populated from the authoritiesByUsername
mapping
|
Can be overridden to customize the creation of the final UserDetailsObject which is returned by the loadUserByUsername method.
username | the name originally passed to loadUserByUsername |
---|---|
userFromUserQuery | the object returned from the execution of the |
combinedAuthorities | the combined array of authorities from all the authority loading queries. |
ApplicationContextException |
---|
Loads authorities by executing the SQL from groupAuthoritiesByUsernameQuery.
Loads authorities by executing the SQL from authoritiesByUsernameQuery.
Executes the SQL usersByUsernameQuery and returns a list of UserDetails objects. There should normally only be one matching user.