Class AbstractAuthenticationToken
- java.lang.Object
-
- org.springframework.security.authentication.AbstractAuthenticationToken
-
- All Implemented Interfaces:
java.io.Serializable,java.security.Principal,Authentication,CredentialsContainer
- Direct Known Subclasses:
AbstractOAuth2TokenAuthenticationToken,AnonymousAuthenticationToken,BearerTokenAuthenticationToken,CasAssertionAuthenticationToken,CasAuthenticationToken,OAuth2AuthenticationToken,OAuth2AuthorizationCodeAuthenticationToken,OAuth2LoginAuthenticationToken,OpenIDAuthenticationToken,PreAuthenticatedAuthenticationToken,RememberMeAuthenticationToken,RunAsUserToken,TestingAuthenticationToken,UsernamePasswordAuthenticationToken
public abstract class AbstractAuthenticationToken extends java.lang.Object implements Authentication, CredentialsContainer
Base class forAuthenticationobjects.Implementations which use this class should be immutable.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AbstractAuthenticationToken(java.util.Collection<? extends GrantedAuthority> authorities)Creates a token with the supplied array of authorities.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)voideraseCredentials()Checks thecredentials,principalanddetailsobjects, invoking theeraseCredentialsmethod on any which implementCredentialsContainer.java.util.Collection<GrantedAuthority>getAuthorities()Set by anAuthenticationManagerto indicate the authorities that the principal has been granted.java.lang.ObjectgetDetails()Stores additional details about the authentication request.java.lang.StringgetName()inthashCode()booleanisAuthenticated()Used to indicate toAbstractSecurityInterceptorwhether it should present the authentication token to theAuthenticationManager.voidsetAuthenticated(boolean authenticated)SeeAuthentication.isAuthenticated()for a full description.voidsetDetails(java.lang.Object details)java.lang.StringtoString()-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.springframework.security.core.Authentication
getCredentials, getPrincipal
-
-
-
-
Constructor Detail
-
AbstractAuthenticationToken
public AbstractAuthenticationToken(java.util.Collection<? extends GrantedAuthority> authorities)
Creates a token with the supplied array of authorities.- Parameters:
authorities- the collection of GrantedAuthoritys for the principal represented by this authentication object.
-
-
Method Detail
-
getAuthorities
public java.util.Collection<GrantedAuthority> getAuthorities()
Description copied from interface:AuthenticationSet by anAuthenticationManagerto indicate the authorities that the principal has been granted. Note that classes should not rely on this value as being valid unless it has been set by a trustedAuthenticationManager.Implementations should ensure that modifications to the returned collection array do not affect the state of the Authentication object, or use an unmodifiable instance.
- Specified by:
getAuthoritiesin interfaceAuthentication- Returns:
- the authorities granted to the principal, or an empty collection if the token has not been authenticated. Never null.
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfacejava.security.Principal
-
isAuthenticated
public boolean isAuthenticated()
Description copied from interface:AuthenticationUsed to indicate toAbstractSecurityInterceptorwhether it should present the authentication token to theAuthenticationManager. Typically anAuthenticationManager(or, more often, one of itsAuthenticationProviders) will return an immutable authentication token after successful authentication, in which case that token can safely returntrueto this method. Returningtruewill improve performance, as calling theAuthenticationManagerfor every request will no longer be necessary.For security reasons, implementations of this interface should be very careful about returning
truefrom this method unless they are either immutable, or have some way of ensuring the properties have not been changed since original creation.- Specified by:
isAuthenticatedin interfaceAuthentication- Returns:
- true if the token has been authenticated and the
AbstractSecurityInterceptordoes not need to present the token to theAuthenticationManageragain for re-authentication.
-
setAuthenticated
public void setAuthenticated(boolean authenticated)
Description copied from interface:AuthenticationSeeAuthentication.isAuthenticated()for a full description.Implementations should always allow this method to be called with a
falseparameter, as this is used by various classes to specify the authentication token should not be trusted. If an implementation wishes to reject an invocation with atrueparameter (which would indicate the authentication token is trusted - a potential security risk) the implementation should throw anIllegalArgumentException.- Specified by:
setAuthenticatedin interfaceAuthentication- Parameters:
authenticated-trueif the token should be trusted (which may result in an exception) orfalseif the token should not be trusted
-
getDetails
public java.lang.Object getDetails()
Description copied from interface:AuthenticationStores additional details about the authentication request. These might be an IP address, certificate serial number etc.- Specified by:
getDetailsin interfaceAuthentication- Returns:
- additional details about the authentication request, or
nullif not used
-
setDetails
public void setDetails(java.lang.Object details)
-
eraseCredentials
public void eraseCredentials()
Checks thecredentials,principalanddetailsobjects, invoking theeraseCredentialsmethod on any which implementCredentialsContainer.- Specified by:
eraseCredentialsin interfaceCredentialsContainer
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equalsin interfacejava.security.Principal- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.security.Principal- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Specified by:
toStringin interfacejava.security.Principal- Overrides:
toStringin classjava.lang.Object
-
-