org.springframework.security.ldap.userdetails
Class LdapUserDetailsImpl

java.lang.Object
  extended by org.springframework.security.ldap.userdetails.LdapUserDetailsImpl
All Implemented Interfaces:
Serializable, UserDetails, PasswordPolicyData, LdapUserDetails
Direct Known Subclasses:
Person

public class LdapUserDetailsImpl
extends Object
implements LdapUserDetails, PasswordPolicyData

A UserDetails implementation which is used internally by the Ldap services. It also contains the user's distinguished name and a set of attributes that have been retrieved from the Ldap server.

An instance may be created as the result of a search, or when user information is retrieved during authentication.

An instance of this class will be used by the LdapAuthenticationProvider to construct the final user details object that it returns.

The equals and hashcode methods are implemented using the Dn property and do not consider additional state, so it is not possible two store two instances with the same DN in the same set, or use them as keys in a map.

See Also:
Serialized Form

Nested Class Summary
static class LdapUserDetailsImpl.Essence
          Variation of essence pattern.
 
Constructor Summary
protected LdapUserDetailsImpl()
           
 
Method Summary
 boolean equals(Object obj)
           
 Collection<GrantedAuthority> getAuthorities()
          Returns the authorities granted to the user.
 String getDn()
          The DN of the entry for this user's account.
 int getGraceLoginsRemaining()
           
 String getPassword()
          Returns the password used to authenticate the user.
 int getTimeBeforeExpiration()
           
 String getUsername()
          Returns the username used to authenticate the user.
 int hashCode()
           
 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.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LdapUserDetailsImpl

protected LdapUserDetailsImpl()
Method Detail

getAuthorities

public Collection<GrantedAuthority> getAuthorities()
Description copied from interface: UserDetails
Returns the authorities granted to the user. Cannot return null.

Specified by:
getAuthorities in interface UserDetails
Returns:
the authorities, sorted by natural key (never null)

getDn

public String getDn()
Description copied from interface: LdapUserDetails
The DN of the entry for this user's account.

Specified by:
getDn in interface LdapUserDetails
Returns:
the user's DN

getPassword

public String getPassword()
Description copied from interface: UserDetails
Returns the password used to authenticate the user. Cannot return null.

Specified by:
getPassword in interface UserDetails
Returns:
the password (never null)

getUsername

public String getUsername()
Description copied from interface: UserDetails
Returns the username used to authenticate the user. Cannot return null.

Specified by:
getUsername in interface UserDetails
Returns:
the username (never null)

isAccountNonExpired

public boolean isAccountNonExpired()
Description copied from interface: UserDetails
Indicates whether the user's account has expired. An expired account cannot be authenticated.

Specified by:
isAccountNonExpired in interface UserDetails
Returns:
true if the user's account is valid (ie non-expired), false if no longer valid (ie expired)

isAccountNonLocked

public boolean isAccountNonLocked()
Description copied from interface: UserDetails
Indicates whether the user is locked or unlocked. A locked user cannot be authenticated.

Specified by:
isAccountNonLocked in interface UserDetails
Returns:
true if the user is not locked, false otherwise

isCredentialsNonExpired

public boolean isCredentialsNonExpired()
Description copied from interface: UserDetails
Indicates whether the user's credentials (password) has expired. Expired credentials prevent authentication.

Specified by:
isCredentialsNonExpired in interface UserDetails
Returns:
true if the user's credentials are valid (ie non-expired), false if no longer valid (ie expired)

isEnabled

public boolean isEnabled()
Description copied from interface: UserDetails
Indicates whether the user is enabled or disabled. A disabled user cannot be authenticated.

Specified by:
isEnabled in interface UserDetails
Returns:
true if the user is enabled, false otherwise

getTimeBeforeExpiration

public int getTimeBeforeExpiration()
Specified by:
getTimeBeforeExpiration in interface PasswordPolicyData

getGraceLoginsRemaining

public int getGraceLoginsRemaining()
Specified by:
getGraceLoginsRemaining in interface PasswordPolicyData

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object