org.acegisecurity.providers
Class UsernamePasswordAuthenticationToken

java.lang.Object
  extended by org.acegisecurity.providers.AbstractAuthenticationToken
      extended by org.acegisecurity.providers.UsernamePasswordAuthenticationToken
All Implemented Interfaces:
Serializable, Principal, Authentication
Direct Known Subclasses:
JaasAuthenticationToken

public class UsernamePasswordAuthenticationToken
extends AbstractAuthenticationToken

An 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.

Version:
$Id: UsernamePasswordAuthenticationToken.java,v 1.9 2005/11/17 00:55:49 benalex Exp $
Author:
Ben Alex
See Also:
Serialized Form

Constructor Summary
protected UsernamePasswordAuthenticationToken()
           
  UsernamePasswordAuthenticationToken(Object principal, Object credentials)
          This constructor can be safely used by any code that wishes to create a UsernamePasswordAuthenticationToken, as the isAuthenticated() will return false.
  UsernamePasswordAuthenticationToken(Object principal, Object credentials, GrantedAuthority[] authorities)
          This constructor should only be used by AuthenticationManager or AuthenticationProvider implementations that are satisfied with producing a trusted (ie isAuthenticated() = true) authentication token.
 
Method Summary
 GrantedAuthority[] getAuthorities()
          Set by an AuthenticationManager to indicate the authorities that the principal has been granted.
 Object getCredentials()
          The credentials that prove the principal is correct.
 Object getDetails()
          Usually a WebAuthenticationDetails.
 Object getPrincipal()
          The identity of the principal being authenticated.
 boolean isAuthenticated()
          Used to indicate to AbstractSecurityInterceptor whether it should present the authentication token to the AuthenticationManager.
 void setAuthenticated(boolean isAuthenticated)
          See Authentication.isAuthenticated() for a full description.
 void setDetails(Object details)
           
 
Methods inherited from class org.acegisecurity.providers.AbstractAuthenticationToken
equals, getName, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.security.Principal
hashCode
 

Constructor Detail

UsernamePasswordAuthenticationToken

public UsernamePasswordAuthenticationToken(Object principal,
                                           Object credentials)
This constructor can be safely used by any code that wishes to create a UsernamePasswordAuthenticationToken, as the isAuthenticated() will return false.

Parameters:
principal - DOCUMENT ME!
credentials - DOCUMENT ME!

UsernamePasswordAuthenticationToken

public UsernamePasswordAuthenticationToken(Object principal,
                                           Object credentials,
                                           GrantedAuthority[] authorities)
This constructor should only be used by AuthenticationManager or AuthenticationProvider implementations that are satisfied with producing a trusted (ie isAuthenticated() = true) authentication token.

Parameters:
principal -
credentials -
authorities -

UsernamePasswordAuthenticationToken

protected UsernamePasswordAuthenticationToken()
Method Detail

setAuthenticated

public void setAuthenticated(boolean isAuthenticated)
                      throws IllegalArgumentException
Description copied from interface: Authentication
See Authentication.isAuthenticated() for a full description.

Implementations should always allow this method to be called with a false parameter, 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 a true parameter (which would indicate the authentication token is trusted - a potential security risk) the implementation should throw an IllegalArgumentException.

Parameters:
isAuthenticated - true if the token should be trusted (which may result in an exception) or false if the token should not be trusted
Throws:
IllegalArgumentException - if an attempt to make the authentication token trusted (by passing true as the argument) is rejected due to the implementation being immutable or implementing its own alternative approach to Authentication.isAuthenticated()

isAuthenticated

public boolean isAuthenticated()
Description copied from interface: Authentication
Used to indicate to AbstractSecurityInterceptor whether it should present the authentication token to the AuthenticationManager. Typically an AuthenticationManager (or, more often, one of its AuthenticationProviders) will return an immutable authentication token after successful authentication, in which case that token can safely return true to this method. Returning true will improve performance, as calling the AuthenticationManager for every request will no longer be necessary.

For security reasons, implementations of this interface should be very careful about returning true to this method unless they are either immutable, or have some way of ensuring the properties have not been changed since original creation.

Returns:
true if the token has been authenticated and the AbstractSecurityInterceptor does not need to represent the token for re-authentication to the AuthenticationManager

getAuthorities

public GrantedAuthority[] getAuthorities()
Description copied from interface: Authentication
Set by an AuthenticationManager to 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 trusted AuthenticationManager.

Returns:
the authorities granted to the principal, or null if authentication has not been completed

getCredentials

public Object getCredentials()
Description copied from interface: Authentication
The credentials that prove the principal is correct. This is usually a password, but could be anything relevant to the AuthenticationManager. Callers are expected to populate the credentials.

Returns:
the credentials that prove the identity of the Principal

setDetails

public void setDetails(Object details)

getDetails

public Object getDetails()
Usually a WebAuthenticationDetails.

Specified by:
getDetails in interface Authentication
Overrides:
getDetails in class AbstractAuthenticationToken
Returns:
the authentication request details, or null

getPrincipal

public Object getPrincipal()
Description copied from interface: Authentication
The identity of the principal being authenticated. This is usually a username. Callers are expected to populate the principal.

Returns:
the Principal being authenticated


Copyright © 2004-2005 Acegi Technology Pty Limited. All Rights Reserved.