Class AttestationChallengeResponse

  • All Implemented Interfaces:
    Serializable

    public class AttestationChallengeResponse
    extends ApiResponse
    Response from Authlete's /attestation/challenge API.

    The Authlete API is supposed to be used from within the implementation the challenge endpoint of the authorization server.

    Authlete's /attestation/challenge API returns JSON which can be mapped to this class. The authorization server implementation should retrieve the value of the action response parameter from the API response and take the following steps according to the value.

    OK

    When the value of the action response parameter is OK, it means that Authlete could prepare a challenge response successfully.

    In this case, the implementation of the challenge endpoint of the authorization server should return an HTTP response with the HTTP status code "200 OK" and the content type "application/json". The message body of the response has been prepared by Authlete's /attestation/challenge API and it is available as the responseContent response parameter.

    The implementation of the challenge endpoint can construct an HTTP response by doing like below.

     200 OK
     Content-Type: application/json
     Cache-Control: no-store
     (Other HTTP headers)
    
     (the value of the responseContent response parameter)

    Note that the OAuth 2.0 Attestation-Based Client Authentication specification requires the response to include the Cache-Control header including the value no-store.

    INTERNAL_SERVER_ERROR

    When the value of the action response parameter is INTERNAL_SERVER_ERROR, it means that an unexpected error has occurred on Authlete side or the service has not been set up properly yet.

    In this case, a simple implementation of the challenge endpoint would return an HTTP response with the HTTP status code "500 Internal Server Error" and the content type "application/json". The message body (= error information in the JSON format) of the response has been prepared by Authlete's /attestation/challenge API and it is available as the responseContent response parameter.

    Such simple implementation of the challenge endpoint can construct an HTTP response by doing like below.

     500 Internal Server Error
     Content-Type: application/json
     (Other HTTP headers)
    
     (the value of the responseContent response parameter)

    However, in real commercial deployments, it is rare for an authorization server to return "500 Internal Server Error" when it encounters an unexpected internal error. It's up to implementations of authorization servers what they actually return in the case of internal server error.

    Since:
    4.39, Authlete 3.0.28
    See Also:
    OAuth 2.0 Attestation-Based Client Authentication, Serialized Form
    • Constructor Detail

      • AttestationChallengeResponse

        public AttestationChallengeResponse()
    • Method Detail

      • getAction

        public AttestationChallengeResponse.Action getAction()
        Get the next action that the implementation of the challenge endpoint should take after getting a response from Authlete's /attestation/challenge API.
        Returns:
        The next action.
      • setAction

        public AttestationChallengeResponse setAction​(AttestationChallengeResponse.Action action)
        Set the next action that the implementation of the challenge endpoint should take after getting a response from Authlete's /attestation/challenge API.
        Parameters:
        action - The next action.
        Returns:
        this object.
      • getResponseContent

        public String getResponseContent()
        Get the content that the implementation of the challenge endpoint should use when it constructs a response.
        Returns:
        The response content in the JSON format.
      • setResponseContent

        public AttestationChallengeResponse setResponseContent​(String content)
        Set the content that the implementation of the challenge endpoint should use when it constructs a response.
        Parameters:
        content - The response content in the JSON format.
        Returns:
        this object.
      • getAttestationChallenge

        public String getAttestationChallenge()
        Get the attestation_challenge value generated by the /attestation/challenge API.
        Returns:
        The generated attestation_challenge value.
      • setAttestationChallenge

        public AttestationChallengeResponse setAttestationChallenge​(String challenge)
        Set the attestation_challenge value generated by the /attestation/challenge API.
        Parameters:
        challenge - The generated attestation_challenge value.
        Returns:
        this object.