Class ErrorObject

java.lang.Object
com.nimbusds.oauth2.sdk.ErrorObject
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
FederationAPIError, TokenSchemeError

@Immutable public class ErrorObject extends Object implements Serializable
Error object, used to encapsulate OAuth 2.0 and other errors. Supports custom parameters.

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"
 }
 
See Also:
  • Constructor Details

    • 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.
    • ErrorObject

      public ErrorObject(String code, String description, int httpStatusCode, URI uri, Map<String,String> customParams)
      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.
      customParams - Custom parameters, null if none.
  • Method Details

    • getCode

      public String getCode()
      Returns the error code.
      Returns:
      The error code, null if not specified.
    • 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

      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.
    • getCustomParams

      Returns the custom parameters.
      Returns:
      The custom parameters, empty map if none.
    • setCustomParams

      public ErrorObject setCustomParams(Map<String,String> customParams)
      Sets the custom parameters.
      Parameters:
      customParams - The custom parameters, null if none.
      Returns:
      A copy of this error with the specified custom parameters.
    • 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

      Returns a parameters representation of this error object. Suitable for URL-encoded error responses.
      Returns:
      The parameters.
    • 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.
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also:
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • 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.
    • removeIllegalChars

      public static String removeIllegalChars(String s)
      Removes any characters from the specified string that are not within the legal range for OAuth 2.0 error codes and messages.

      See RFC 6749, section 5.2.

      Parameters:
      s - The string to check. May be null.
      Returns:
      The string with removed illegal characters, null if the original string was null.
    • isLegal

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

      See RFC 6749, section 5.2.

      Parameters:
      s - The string to check. May 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.