001 package com.nimbusds.jwt;
002
003
004 import java.text.ParseException;
005
006 import com.nimbusds.jose.ReadOnlyHeader;
007
008 import com.nimbusds.jose.util.Base64URL;
009
010
011 /**
012 * JSON Web Token (JWT) interface.
013 *
014 * @author Vladimir Dzhuvinov
015 * @version $version$ (2013-01-15)
016 */
017 public interface JWT {
018
019
020 /**
021 * Gets the JOSE header of the JSON Web Token (JWT).
022 *
023 * @return The header.
024 */
025 public ReadOnlyHeader getHeader();
026
027
028 /**
029 * Gets the claims set of the JSON Web Token (JWT).
030 *
031 * @return The claims set, {@code null} if not available (for an
032 * encrypted JWT that isn't decrypted).
033 *
034 * @throws ParseException If the payload of the JWT doesn't represent a
035 * valid JSON object and a JWT claims set.
036 */
037 public ReadOnlyJWTClaimsSet getJWTClaimsSet()
038 throws ParseException;
039
040
041 /**
042 * Gets the original parsed Base64URL parts used to create the JSON Web
043 * Token (JWT).
044 *
045 * @return The original Base64URL parts used to creates the JWT,
046 * {@code null} if the JWT was created from scratch. The
047 * individual parts may be empty or {@code null} to indicate a
048 * missing part.
049 */
050 public Base64URL[] getParsedParts();
051
052
053 /**
054 * Gets the original parsed string used to create the JSON Web Token
055 * (JWT).
056 *
057 * @see #getParsedParts
058 *
059 * @return The parsed string used to create the JWT, {@code null} if
060 * the JWT was created from scratch.
061 */
062 public String getParsedString();
063
064
065 /**
066 * Serialises the JSON Web Token (JWT) to its compact format consisting
067 * of Base64URL-encoded parts delimited by period ('.') characters.
068 *
069 * @return The serialised JWT.
070 *
071 * @throws IllegalStateException If the JWT is not in a state that
072 * permits serialisation.
073 */
074 public String serialize();
075 }