I'm curious about the UserDetailsManager interface. It's not mentioned in the reference guide and in the JavaDoc it's described as:
An extension of the UserDetailsService which provides the ability to create new users and update existing ones.
When implementing the UserDetailsManager interface you have to implement five methods of its own and one which it inherits from the UserDetailsService which it extends.
These methods are: createUser, updateUser, deleteUser, changePassword, userExists and the inherited method loadUserByUsername.
In the Spring Security framework v2.0.4 there are two concrete implementations of UserDetailsManager: JdbcUserDetailsManager and LdapUserDetailsManager.
Both the interface and the concrete implementations are implemented by Luke Taylor.
It seems the Spring Security framework never uses the concrete implementations.
My conclusion is that the interface is included purely as a convenience interface which the user of the framework may or may not decide to use. Perhaps there were some thought that later on more concrete implementations would exist and take out some of the work for the framework users?
What I'm looking for is more information. For th