Class UsernamePasswordAuthenticationToken
- All Implemented Interfaces:
- Serializable,- Principal,- Authentication,- CredentialsContainer
- Direct Known Subclasses:
- JaasAuthenticationToken,- KerberosUsernamePasswordAuthenticationToken
Authentication implementation that is
 designed for simple presentation of a username and password.
 
 The principal and credentials should be set with an
 Object that provides the respective property via its
 Object.toString() method. The simplest such Object to use is
 String.
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classUsernamePasswordAuthenticationToken.Builder<B extends UsernamePasswordAuthenticationToken.Builder<B>>A builder ofUsernamePasswordAuthenticationTokeninstancesNested classes/interfaces inherited from class org.springframework.security.authentication.AbstractAuthenticationTokenAbstractAuthenticationToken.AbstractAuthenticationBuilder<B extends AbstractAuthenticationToken.AbstractAuthenticationBuilder<B>>
- 
Constructor SummaryConstructorsModifierConstructorDescriptionUsernamePasswordAuthenticationToken(@Nullable Object principal, @Nullable Object credentials) This constructor can be safely used by any code that wishes to create aUsernamePasswordAuthenticationToken, as theAbstractAuthenticationToken.isAuthenticated()will returnfalse.UsernamePasswordAuthenticationToken(Object principal, @Nullable Object credentials, Collection<? extends GrantedAuthority> authorities) This constructor should only be used byAuthenticationManagerorAuthenticationProviderimplementations that are satisfied with producing a trusted (i.e.protected
- 
Method SummaryModifier and TypeMethodDescriptionauthenticated(Object principal, @Nullable Object credentials, Collection<? extends GrantedAuthority> authorities) This factory method can be safely used by any code that wishes to create a authenticatedUsernamePasswordAuthenticationToken.voidChecks thecredentials,principalanddetailsobjects, invoking theeraseCredentialsmethod on any which implementCredentialsContainer.@Nullable ObjectThe credentials that prove the principal is correct.@Nullable ObjectThe identity of the principal being authenticated.voidsetAuthenticated(boolean isAuthenticated) SeeAuthentication.isAuthenticated()for a full description.Return anAuthentication.Builderbased on this instance.unauthenticated(@Nullable Object principal, @Nullable Object credentials) This factory method can be safely used by any code that wishes to create a unauthenticatedUsernamePasswordAuthenticationToken.Methods inherited from class org.springframework.security.authentication.AbstractAuthenticationTokenequals, getAuthorities, getDetails, getName, hashCode, isAuthenticated, setDetails, toString
- 
Constructor Details- 
UsernamePasswordAuthenticationTokenpublic UsernamePasswordAuthenticationToken(@Nullable Object principal, @Nullable Object credentials) This constructor can be safely used by any code that wishes to create aUsernamePasswordAuthenticationToken, as theAbstractAuthenticationToken.isAuthenticated()will returnfalse.
- 
UsernamePasswordAuthenticationTokenpublic UsernamePasswordAuthenticationToken(Object principal, @Nullable Object credentials, Collection<? extends GrantedAuthority> authorities) This constructor should only be used byAuthenticationManagerorAuthenticationProviderimplementations that are satisfied with producing a trusted (i.e.AbstractAuthenticationToken.isAuthenticated()=true) authentication token.- Parameters:
- principal-
- credentials-
- authorities-
 
- 
UsernamePasswordAuthenticationTokenprotected UsernamePasswordAuthenticationToken(UsernamePasswordAuthenticationToken.Builder<?> builder) 
 
- 
- 
Method Details- 
unauthenticatedpublic static UsernamePasswordAuthenticationToken unauthenticated(@Nullable Object principal, @Nullable Object credentials) This factory method can be safely used by any code that wishes to create a unauthenticatedUsernamePasswordAuthenticationToken.- Parameters:
- principal-
- credentials-
- Returns:
- UsernamePasswordAuthenticationToken with false isAuthenticated() result
- Since:
- 5.7
 
- 
authenticatedpublic static UsernamePasswordAuthenticationToken authenticated(Object principal, @Nullable Object credentials, Collection<? extends GrantedAuthority> authorities) This factory method can be safely used by any code that wishes to create a authenticatedUsernamePasswordAuthenticationToken.- Parameters:
- principal-
- credentials-
- Returns:
- UsernamePasswordAuthenticationToken with true isAuthenticated() result
- Since:
- 5.7
 
- 
getCredentialsDescription copied from interface:AuthenticationThe credentials that prove the principal is correct. This is usually a password, but could be anything relevant to theAuthenticationManager. Callers are expected to populate the credentials.- Returns:
- the credentials that prove the identity of the Principal
 
- 
getPrincipalDescription copied from interface:AuthenticationThe identity of the principal being authenticated. In the case of an authentication request with username and password, this would be the username. Callers are expected to populate the principal for an authentication request.The AuthenticationManager implementation will often return an Authentication containing richer information as the principal for use by the application. Many of the authentication providers will create a UserDetailsobject as the principal.- Returns:
- the Principalbeing authenticated or the authenticated principal after authentication.
 
- 
setAuthenticatedDescription 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 interface- Authentication
- Overrides:
- setAuthenticatedin class- AbstractAuthenticationToken
- Parameters:
- isAuthenticated-- trueif the token should be trusted (which may result in an exception) or- falseif the token should not be trusted
- Throws:
- IllegalArgumentException- if an attempt to make the authentication token trusted (by passing- trueas the argument) is rejected due to the implementation being immutable or implementing its own alternative approach to- Authentication.isAuthenticated()
 
- 
eraseCredentialspublic void eraseCredentials()Description copied from class:AbstractAuthenticationTokenChecks thecredentials,principalanddetailsobjects, invoking theeraseCredentialsmethod on any which implementCredentialsContainer.- Specified by:
- eraseCredentialsin interface- CredentialsContainer
- Overrides:
- eraseCredentialsin class- AbstractAuthenticationToken
 
- 
toBuilderDescription copied from interface:AuthenticationReturn anAuthentication.Builderbased on this instance. By default, returns a builder that builds aSimpleAuthentication.Although a defaultmethod, allAuthenticationimplementations should implement this. The reason is to ensure that theAuthenticationtype is preserved whenAuthentication.Builder.build()is invoked. This is especially important in the event that your authentication implementation contains custom fields.This isn't strictly necessary since it is recommended that applications code to the Authenticationinterface and that custom information is often contained in theAuthentication.getPrincipal()value.- Returns:
- an Authentication.Builderfor building a newAuthenticationbased on this instance
 
 
-