Implementations are not used directly by Spring Security for security purposes. They simply store user information which is later encapsulated into {@link Authentication} objects. This allows non-security related userinformation (such as email addresses, telephone numbers etc) to be stored in a convenient location.
Concrete implementations must take particular care to ensure the non-null contract detailed for each method is enforced. See {@link org.springframework.security.core.userdetails.User} for a referenceimplementation (which you might like to extend).
Concrete implementations should be immutable (value object semantics, like a String). This is because the UserDetails
will be stored in caches and as such multiple threads may use the same instance.
|
|
|
|