Class JOSEObject

java.lang.Object
com.nimbusds.jose.JOSEObject
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
JWEObject, JWSObject, PlainObject

public abstract class JOSEObject extends Object implements Serializable
The base abstract class for JSON Web Signature (JWS) secured, JSON Web Encryption (JWE) secured and unsecured (plain / alg=none) objects serialisable to compact encoding.
Version:
2021-10-05
Author:
Vladimir Dzhuvinov
See Also:
  • Field Details

  • Constructor Details

    • JOSEObject

      protected JOSEObject()
      Creates a new JOSE object. The payload and the original parsed Base64URL parts are not defined.
    • JOSEObject

      protected JOSEObject(Payload payload)
      Creates a new JOSE object with the specified payload.
      Parameters:
      payload - The payload, null if not available (e.g. for an encrypted JWE object).
  • Method Details

    • getHeader

      public abstract Header getHeader()
      Returns the header of this JOSE object.
      Returns:
      The header.
    • setPayload

      protected void setPayload(Payload payload)
      Sets the payload of this JOSE object.
      Parameters:
      payload - The payload, null if not available (e.g. for an encrypted JWE object).
    • getPayload

      public Payload getPayload()
      Returns the payload of this JOSE object.
      Returns:
      The payload, null if not available (for an encrypted JWE object that hasn't been decrypted).
    • setParsedParts

      protected void setParsedParts(Base64URL... parts)
      Sets the original parsed Base64URL parts used to create this JOSE object.
      Parameters:
      parts - The original Base64URL parts used to create this JOSE object, null if the object was created from scratch. The individual parts may be empty or null to indicate a missing part.
    • getParsedParts

      Returns the original parsed Base64URL parts used to create this JOSE object.
      Returns:
      The original Base64URL parts used to create this JOSE object, null if the object was created from scratch. The individual parts may be empty or null to indicate a missing part.
    • getParsedString

      Returns the original parsed string used to create this JOSE object.
      Returns:
      The parsed string used to create this JOSE object, null if the object was creates from scratch.
      See Also:
    • serialize

      public abstract String serialize()
      Serialises this JOSE object to compact encoding consisting of Base64URL-encoded parts delimited by period ('.') characters.
      Returns:
      The serialised JOSE object.
      Throws:
      IllegalStateException - If the JOSE object is not in a state that permits serialisation.
    • split

      public static Base64URL[] split(String s) throws ParseException
      Splits a compact serialised JOSE object into its Base64URL-encoded parts.
      Parameters:
      s - The compact serialised JOSE object to split. Must not be null.
      Returns:
      The JOSE Base64URL-encoded parts (three for unsecured and JWS objects, five for JWE objects).
      Throws:
      ParseException - If the specified string couldn't be split into three or five Base64URL-encoded parts.
    • parse

      public static JOSEObject parse(String s) throws ParseException
      Parses a JOSE object from the specified string in compact encoding.
      Parameters:
      s - The string to parse. Must not be null.
      Returns:
      The corresponding JWSObject, JWEObject or PlainObject.
      Throws:
      ParseException - If the string couldn't be parsed to a valid JWS, JWE or unsecured object.