Class ErrorObject

  • Direct Known Subclasses:
    BearerTokenError, FederationAPIError

    @Immutable
    public class ErrorObject
    extends Object
    Error object, used to encapsulate OAuth 2.0 and other errors.

    Example error object as HTTP response:

     HTTP/1.1 400 Bad Request
     Content-Type: application/json;charset=UTF-8
     Cache-Control: no-store
     Pragma: no-cache
    
     {
       "error" : "invalid_request"
     }
     
    • Constructor Detail

      • ErrorObject

        public ErrorObject​(String code)
        Creates a new error with the specified code. The code must be within the legal character range.
        Parameters:
        code - The error code, null if not specified.
      • ErrorObject

        public ErrorObject​(String code,
                           String description)
        Creates a new error with the specified code and description. The code and the description must be within the legal character range.
        Parameters:
        code - The error code, null if not specified.
        description - The error description, null if not specified.
      • ErrorObject

        public ErrorObject​(String code,
                           String description,
                           int httpStatusCode)
        Creates a new error with the specified code, description and HTTP status code. The code and the description must be within the legal character range.
        Parameters:
        code - The error code, null if not specified.
        description - The error description, null if not specified.
        httpStatusCode - The HTTP status code, zero if not specified.
      • ErrorObject

        public ErrorObject​(String code,
                           String description,
                           int httpStatusCode,
                           URI uri)
        Creates a new error with the specified code, description, HTTP status code and page URI. The code and the description must be within the legal character range.
        Parameters:
        code - The error code, null if not specified.
        description - The error description, null if not specified.
        httpStatusCode - The HTTP status code, zero if not specified.
        uri - The error page URI, null if not specified.
    • Method Detail

      • getCode

        public String getCode()
        Returns the error code.
        Returns:
        The error code, null if not specified.
      • getDescription

        public String getDescription()
        Returns the error description.
        Returns:
        The error description, null if not specified.
      • setDescription

        public ErrorObject setDescription​(String description)
        Sets the error description.
        Parameters:
        description - The error description, null if not specified.
        Returns:
        A copy of this error with the specified description.
      • appendDescription

        public ErrorObject appendDescription​(String text)
        Appends the specified text to the error description.
        Parameters:
        text - The text to append to the error description, null if not specified.
        Returns:
        A copy of this error with the specified appended description.
      • getHTTPStatusCode

        public int getHTTPStatusCode()
        Returns the HTTP status code.
        Returns:
        The HTTP status code, zero if not specified.
      • setHTTPStatusCode

        public ErrorObject setHTTPStatusCode​(int httpStatusCode)
        Sets the HTTP status code.
        Parameters:
        httpStatusCode - The HTTP status code, zero if not specified.
        Returns:
        A copy of this error with the specified HTTP status code.
      • getURI

        public URI getURI()
        Returns the error page URI.
        Returns:
        The error page URI, null if not specified.
      • setURI

        public ErrorObject setURI​(URI uri)
        Sets the error page URI.
        Parameters:
        uri - The error page URI, null if not specified.
        Returns:
        A copy of this error with the specified page URI.
      • toJSONObject

        public net.minidev.json.JSONObject toJSONObject()
        Returns a JSON object representation of this error object.

        Example:

         {
           "error"             : "invalid_grant",
           "error_description" : "Invalid resource owner credentials"
         }
         
        Returns:
        The JSON object.
      • toParameters

        public Map<String,​List<String>> toParameters()
        Returns a parameters representation of this error object. Suitable for URL-encoded error responses.
        Returns:
        The parameters.
      • toHTTPResponse

        public HTTPResponse toHTTPResponse()
        Returns an HTTP response for this error object. If no HTTP status code is specified it will be set to 400 (Bad Request). If an error code is specified the Content-Type header will be set to application/json; charset=UTF-8 and the error JSON object will be put in the entity body.
        Returns:
        The HTTP response.
      • parse

        public static ErrorObject parse​(net.minidev.json.JSONObject jsonObject)
        Parses an error object from the specified JSON object.
        Parameters:
        jsonObject - The JSON object to parse. Must not be null.
        Returns:
        The error object.
      • parse

        public static ErrorObject parse​(Map<String,​List<String>> params)
        Parses an error object from the specified parameters representation. Suitable for URL-encoded error responses.
        Parameters:
        params - The parameters. Must not be null.
        Returns:
        The error object.
      • parse

        public static ErrorObject parse​(HTTPResponse httpResponse)
        Parses an error object from the specified HTTP response.
        Parameters:
        httpResponse - The HTTP response to parse. Must not be null.
        Returns:
        The error object.
      • isLegal

        public static boolean isLegal​(String s)
        Returns true if the characters in the specified string are within the isLegal(char) legal ranges} for OAuth 2.0 error codes and messages.

        See RFC 6749, section 5.2.

        Parameters:
        s - The string to check. May be be null.
        Returns:
        true if the string is legal, else false.
      • isLegal

        public static boolean isLegal​(char c)
        Returns true if the specified char is within the legal ranges [0x20, 0x21] | [0x23 - 0x5B] | [0x5D - 0x7E] for OAuth 2.0 error codes and messages.

        See RFC 6749, section 5.2.

        Parameters:
        c - The character to check. Must not be null.
        Returns:
        true if the character is legal, else false.