Class ChallengeResponse

java.lang.Object
org.restlet.data.ChallengeMessage
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
  • Constructor Details

    • ChallengeResponse

      public ChallengeResponse(ChallengeRequest challengeRequest, Response response, String identifier, char[] secret)
      Constructor. It leverages the latest server response and challenge request 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 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 serverNonceCount, 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.
      serverNonceCount - 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 Details

    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class ChallengeMessage
    • 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(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

      @Deprecated public int getServerNounceCount()
      Deprecated.
      Use getServerNonceCount instead.
      Returns the server nonce count.
      Returns:
      The server nonce count.
    • getServerNonceCount

      public int getServerNonceCount()
      Returns the server nonce count.
      Returns:
      The server nonce count.
    • getServerNounceCountAsHex

      @Deprecated public String getServerNounceCountAsHex()
      Deprecated.
      Use getServerNonceCountAsHex instead.
      Returns the server nonce count as a hexadecimal string of eight characters.
      Returns:
      The server nonce count as a hexadecimal string.
    • getServerNonceCountAsHex

      public String getServerNonceCountAsHex()
      Returns the server nonce count as a hexadecimal string of eight characters.
      Returns:
      The server nonce count as a 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

      @Deprecated public void setServerNounceCount(int serverNonceCount)
      Deprecated.
      Use setServerNonceCount instead.
      Sets the server nonce count.
      Parameters:
      serverNonceCount - The server nonce count.
    • setServerNonceCount

      public void setServerNonceCount(int serverNonceCount)
      Sets the server nonce count.
      Parameters:
      serverNonceCount - 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.