Package org.springframework.security.core.userdetails

# Interface UserDetails

All Superinterfaces:
  `Serializable`

All Known Implementing Classes:
  `User`

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 or use in your code).

See Also:
  - `UserDetailsService`
  - `UserCache`

## Method Summary

Modifier and Type
Method
Description
`Collection<? extends 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.
`default boolean`
`isAccountNonExpired()`
Indicates whether the user's account has expired.
`default boolean`
`isAccountNonLocked()`
Indicates whether the user is locked or unlocked.
`default boolean`
`isCredentialsNonExpired()`
Indicates whether the user's credentials (password) has expired.
`default boolean`
`isEnabled()`
Indicates whether the user is enabled or disabled.

## Method Details

### getAuthorities

Collection<? extends 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.

Returns:
  the password

### getUsername

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

Returns:
  the username (never `null`)

### isAccountNonExpired

default 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

default 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

default 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

default 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