org.restlet.data
Class ChallengeResponse

java.lang.Object
  extended by org.restlet.data.ChallengeMessage
      extended by org.restlet.data.ChallengeResponse

public final class ChallengeResponse
extends ChallengeMessage

Authentication response sent by client to an origin server. This is typically following a ChallengeRequest sent by the origin server to the client.

Sometimes, it might be faster to preemptively issue a challenge response if the client knows for sure that the target resource will require authentication.

Note that when used with HTTP connectors, this class maps to the "Authorization" header.

Author:
Jerome Louvel

Field Summary
 
Fields inherited from class org.restlet.data.ChallengeMessage
QUALITY_AUTHENTICATION, QUALITY_AUTHENTICATION_INTEGRITY
 
Constructor Summary
ChallengeResponse(ChallengeRequest challengeRequest, Response response, String identifier, char[] secret)
          Constructor.
ChallengeResponse(ChallengeRequest challengeRequest, Response response, String identifier, char[] secret, String secretAlgorithm)
          Constructor.
ChallengeResponse(ChallengeRequest challengeRequest, Response response, String identifier, String secret)
          Constructor.
ChallengeResponse(ChallengeScheme scheme)
          Constructor with no credentials.
ChallengeResponse(ChallengeScheme scheme, Series<Parameter> parameters, String identifier, char[] secret, String secretAlgorithm, String realm, String quality, Reference digestRef, String digestAlgorithm, String opaque, String clientNonce, String serverNonce, int serverNounceCount, long timeIssued)
          Constructor.
ChallengeResponse(ChallengeScheme scheme, String identifier, char[] secret)
          Constructor.
ChallengeResponse(ChallengeScheme scheme, String identifier, char[] secret, Series<Parameter> parameters)
          Constructor.
ChallengeResponse(ChallengeScheme scheme, String identifier, Series<Parameter> parameters)
          Constructor.
ChallengeResponse(ChallengeScheme scheme, String identifier, String secret)
          Constructor.
 
Method Summary
 boolean equals(Object obj)
          
 String getClientNonce()
          Returns the client nonce.
 Reference getDigestRef()
          Returns the Request.getResourceRef() value duplicated here in case a proxy changed it.
 String getIdentifier()
          Returns the user identifier, such as a login name or an access key.
 Principal getPrincipal()
          Gets the principal associated to the identifier property.
 String getQuality()
          Returns the chosen quality of protection.
 char[] getSecret()
          Returns the user secret, such as a password or a secret key.
 String getSecretAlgorithm()
          Returns the digest algorithm name optionally applied on the user secret.
 int getServerNounceCount()
          Returns the server nonce count.
 String getServerNounceCountAsHex()
          Returns the server nonce count as an hexadecimal string of eight characters.
 long getTimeIssued()
          Returns the time when the response was issued, as returned by System.currentTimeMillis().
 int hashCode()
          
 void setClientNonce(String clientNonce)
          Sets the client nonce.
 void setDigestRef(Reference digestRef)
          Sets the digest URI reference.
 void setIdentifier(String identifier)
          Sets the user identifier, such as a login name or an access key.
 void setQuality(String quality)
          Sets the chosen quality of protection.
 void setSecret(char[] secret)
          Sets the user secret, such as a password or a secret key.
 void setSecret(String secret)
          Sets the user secret, such as a password or a secret key.
 void setSecretAlgorithm(String secretDigestAlgorithm)
          Sets the digest algorithm name optionally applied on the user secret.
 void setServerNounceCount(int serverNounceCount)
          Sets the server nonce count.
 void setTimeIssued(long timeIssued)
          Sets the time when the response was issued, as returned by System.currentTimeMillis().
 
Methods inherited from class org.restlet.data.ChallengeMessage
getDigestAlgorithm, getOpaque, getParameters, getRawValue, getRealm, getScheme, getServerNonce, setDigestAlgorithm, setOpaque, setParameters, setRawValue, setRealm, setScheme, setServerNonce
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ChallengeResponse

public ChallengeResponse(ChallengeRequest challengeRequest,
                         Response response,
                         String identifier,
                         char[] secret)
Constructor. It leverages the latest server response and challenge request in order to compute the credentials.

Parameters:
challengeRequest - The challenge request sent by the origin server.
response - The latest server response.
identifier - The user identifier, such as a login name or an access key.
secret - The user secret, such as a password or a secret key, with no digest applied.

ChallengeResponse

public ChallengeResponse(ChallengeRequest challengeRequest,
                         Response response,
                         String identifier,
                         char[] secret,
                         String secretAlgorithm)
Constructor. It leverages the latest server response and challenge request in order to compute the credentials.

Parameters:
challengeRequest - The challenge request sent by the origin server.
response - The latest server response.
identifier - The user identifier, such as a login name or an access key.
secret - The user secret used to compute the secret, with an optional digest applied.
secretAlgorithm - The digest algorithm of the user secret (see Digest class).

ChallengeResponse

public ChallengeResponse(ChallengeRequest challengeRequest,
                         Response response,
                         String identifier,
                         String secret)
Constructor. It leverages the latest server response and challenge request in order to compute the credentials.

Parameters:
challengeRequest - The challenge request sent by the origin server.
response - The latest server response.
identifier - The user identifier, such as a login name or an access key.
secret - The user secret, such as a password or a secret key.

ChallengeResponse

public ChallengeResponse(ChallengeScheme scheme)
Constructor with no credentials.

Parameters:
scheme - The challenge scheme.

ChallengeResponse

public ChallengeResponse(ChallengeScheme scheme,
                         Series<Parameter> parameters,
                         String identifier,
                         char[] secret,
                         String secretAlgorithm,
                         String realm,
                         String quality,
                         Reference digestRef,
                         String digestAlgorithm,
                         String opaque,
                         String clientNonce,
                         String serverNonce,
                         int serverNounceCount,
                         long timeIssued)
Constructor.

Parameters:
scheme - The challenge scheme.
parameters - The additional scheme parameters.
identifier - The user identifier, such as a login name or an access key.
secret - The user secret, such as a password or a secret key.
secretAlgorithm - The digest algorithm name optionally applied on the user secret.
realm - The authentication realm.
quality - The chosen quality of protection.
digestRef - The Request.getResourceRef() value duplicated here in case a proxy changed it.
digestAlgorithm - The digest algorithm.
opaque - An opaque string of data which should be returned by the client unchanged.
clientNonce - The client nonce value.
serverNonce - The server nonce.
serverNounceCount - The server nonce count.
timeIssued - The time when the response was issued, as returned by System.currentTimeMillis().

ChallengeResponse

public ChallengeResponse(ChallengeScheme scheme,
                         String identifier,
                         char[] secret)
Constructor.

Parameters:
scheme - The challenge scheme.
identifier - The user identifier, such as a login name or an access key.
secret - The user secret, such as a password or a secret key.

ChallengeResponse

public ChallengeResponse(ChallengeScheme scheme,
                         String identifier,
                         char[] secret,
                         Series<Parameter> parameters)
Constructor.

Parameters:
scheme - The challenge scheme.
identifier - The user identifier, such as a login name or an access key.
parameters - The additional scheme parameters.

ChallengeResponse

public ChallengeResponse(ChallengeScheme scheme,
                         String identifier,
                         Series<Parameter> parameters)
Constructor.

Parameters:
scheme - The challenge scheme.
identifier - The user identifier, such as a login name or an access key.
parameters - The additional scheme parameters.

ChallengeResponse

public ChallengeResponse(ChallengeScheme scheme,
                         String identifier,
                         String secret)
Constructor.

Parameters:
scheme - The challenge scheme.
identifier - The user identifier, such as a login name or an access key.
secret - The user secret, such as a password or a secret key.
Method Detail

equals

public boolean equals(Object obj)

Overrides:
equals in class Object

getClientNonce

public String getClientNonce()
Returns the client nonce.

Returns:
The client nonce.

getDigestRef

public Reference getDigestRef()
Returns the Request.getResourceRef() value duplicated here in case a proxy changed it.

Returns:
The digest URI reference.

getIdentifier

public String getIdentifier()
Returns the user identifier, such as a login name or an access key.

Returns:
The user identifier, such as a login name or an access key.

getPrincipal

public Principal getPrincipal()
Gets the principal associated to the identifier property.

Returns:
The principal associated to the identifier property.

getQuality

public String getQuality()
Returns the chosen quality of protection.

Returns:
The chosen quality of protection.

getSecret

public char[] getSecret()
Returns the user secret, such as a password or a secret key. It is not recommended to use String.String(char[]) for security reasons.

Returns:
The user secret, such as a password or a secret key.

getSecretAlgorithm

public String getSecretAlgorithm()
Returns the digest algorithm name optionally applied on the user secret.

Returns:
The digest algorithm name optionally applied on the user secret.

getServerNounceCount

public int getServerNounceCount()
Returns the server nonce count.

Returns:
The server nonce count.

getServerNounceCountAsHex

public String getServerNounceCountAsHex()
Returns the server nonce count as an hexadecimal string of eight characters.

Returns:
The server nonce count as an hexadecimal string.

getTimeIssued

public long getTimeIssued()
Returns the time when the response was issued, as returned by System.currentTimeMillis().

Returns:
The time when the response was issued.

hashCode

public int hashCode()

Overrides:
hashCode in class ChallengeMessage

setClientNonce

public void setClientNonce(String clientNonce)
Sets the client nonce.

Parameters:
clientNonce - The client nonce.

setDigestRef

public void setDigestRef(Reference digestRef)
Sets the digest URI reference.

Parameters:
digestRef - The digest URI reference.

setIdentifier

public void setIdentifier(String identifier)
Sets the user identifier, such as a login name or an access key.

Parameters:
identifier - The user identifier, such as a login name or an access key.

setQuality

public void setQuality(String quality)
Sets the chosen quality of protection.

Parameters:
quality - The chosen quality of protection.

setSecret

public void setSecret(char[] secret)
Sets the user secret, such as a password or a secret key.

Parameters:
secret - The user secret, such as a password or a secret key.

setSecret

public void setSecret(String secret)
Sets the user secret, such as a password or a secret key.

Parameters:
secret - The user secret, such as a password or a secret key.

setSecretAlgorithm

public void setSecretAlgorithm(String secretDigestAlgorithm)
Sets the digest algorithm name optionally applied on the user secret.

Parameters:
secretDigestAlgorithm - The digest algorithm name optionally applied on the user secret.

setServerNounceCount

public void setServerNounceCount(int serverNounceCount)
Sets the server nonce count.

Parameters:
serverNounceCount - The server nonce count.

setTimeIssued

public void setTimeIssued(long timeIssued)
Sets the time when the response was issued, as returned by System.currentTimeMillis().

Parameters:
timeIssued - The time when the response was issued.


Copyright © 2005-2013 Restlet.