org.springframework.security.core.userdetails
Interface UserDetails

All Superinterfaces:
Serializable
All Known Subinterfaces:
LdapUserDetails
All Known Implementing Classes:
InetOrgPerson, LdapUserDetailsImpl, Person, User, UserDetailsWrapper

public interface UserDetails
extends Serializable

Provides core user information.

Implementations are not used directly by Spring Security for security purposes. They simply store user information which is later encapsulated into Authentication objects. This allows non-security related user information (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 User for a reference implementation (which you might like to extend).

Concrete implementations should be preferably be immutable – they should have value object semantics, like a String. The UserDetails may be stored in a cache and multiple threads may use the same instance. Immutable objects are more robust and are guaranteed to be thread-safe. This is not strictly essential (there's nothing within Spring Security itself which absolutely requires it), but if your UserDetails object can be modified then it's up to you to make sure that you do so safely and that you manage any caches which may contain copies of the object.

Version:
$Id: UserDetails.java 3925 2009-10-05 19:28:53Z ltaylor $
Author:
Ben Alex
See Also:
UserDetailsService, UserCache

Method Summary
 Collection<GrantedAuthority> getAuthorities()
          Returns the authorities granted to the user.
 String getPassword()
          Returns the password used to authenticate the user.
 String getUsername()
          Returns the username used to authenticate the user.
 boolean isAccountNonExpired()
          Indicates whether the user's account has expired.
 boolean isAccountNonLocked()
          Indicates whether the user is locked or unlocked.
 boolean isCredentialsNonExpired()
          Indicates whether the user's credentials (password) has expired.
 boolean isEnabled()
          Indicates whether the user is enabled or disabled.
 

Method Detail

getAuthorities

Collection<GrantedAuthority> getAuthorities()
Returns the authorities granted to the user. Cannot return null.

Returns:
the authorities, sorted by natural key (never null)

getPassword

String getPassword()
Returns the password used to authenticate the user. Cannot return null.

Returns:
the password (never null)

getUsername

String getUsername()
Returns the username used to authenticate the user. Cannot return null.

Returns:
the username (never null)

isAccountNonExpired

boolean isAccountNonExpired()
Indicates whether the user's account has expired. An expired account cannot be authenticated.

Returns:
true if the user's account is valid (ie non-expired), false if no longer valid (ie expired)

isAccountNonLocked

boolean isAccountNonLocked()
Indicates whether the user is locked or unlocked. A locked user cannot be authenticated.

Returns:
true if the user is not locked, false otherwise

isCredentialsNonExpired

boolean isCredentialsNonExpired()
Indicates whether the user's credentials (password) has expired. Expired credentials prevent authentication.

Returns:
true if the user's credentials are valid (ie non-expired), false if no longer valid (ie expired)

isEnabled

boolean isEnabled()
Indicates whether the user is enabled or disabled. A disabled user cannot be authenticated.

Returns:
true if the user is enabled, false otherwise


Copyright © 2004-2009 SpringSource, Inc. All Rights Reserved.