Class JwtUtil

java.lang.Object
io.helidon.security.jwt.JwtUtil

public final class JwtUtil extends Object
Utilities for JWT and JWK parsing.
  • Method Details

    • asBigInteger

      public static BigInteger asBigInteger(JsonObject json, String key, String description) throws JwtException
      Extract a key value from json object that is base64-url encoded and convert it to big integer.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      description - description of the field for error handling
      Returns:
      BigInteger value
      Throws:
      JwtException - in case the key is not present or is of invalid content
    • asString

      public static String asString(JsonObject json, String key, String description) throws JwtException
      Extract a key value from json object that is string.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      description - description of the field for error handling
      Returns:
      String value
      Throws:
      JwtException - in case the key is not present or is of invalid content
    • getBigInteger

      public static Optional<BigInteger> getBigInteger(JsonObject json, String key, String description) throws JwtException
      Extract a key value from json object that is base64-url encoded and convert it to big integer if present.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      description - description of the field for error handling
      Returns:
      BigInteger value if present
      Throws:
      JwtException - in case the key is of invalid content
    • getStrings

      public static Optional<List<String>> getStrings(JsonObject json, String key) throws JwtException
      Extract a key value from json object that is a list of strings if present.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      Returns:
      List of String value if present
      Throws:
      JwtException - in case the key is of invalid content
    • getString

      public static Optional<String> getString(JsonObject json, String key) throws JwtException
      Extract a key value from json object that is string if present.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      Returns:
      String value if present
      Throws:
      JwtException - in case the key is of invalid content
    • getByteArray

      public static Optional<byte[]> getByteArray(JsonObject json, String key, String description) throws JwtException
      Extract a key value from json object that is a base64-url encoded byte array, if present.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      description - description of the field for error handling
      Returns:
      byte array value if present
      Throws:
      JwtException - in case the key is of invalid content or not base64 encoded
    • asByteArray

      public static byte[] asByteArray(JsonObject json, String key, String description) throws JwtException
      Extract a key value from json object that is a base64-url encoded byte array.
      Parameters:
      json - JsonObject to read key from
      key - key of the value we want to read
      description - description of the field for error handling
      Returns:
      byte array value
      Throws:
      JwtException - in case the key is not present, is of invalid content or not base64 encoded
    • getKeyFactory

      public static KeyFactory getKeyFactory(String algorithm) throws JwtException
      Create a key factory for algorithm.
      Parameters:
      algorithm - security algorithm (such as RSA, EC)
      Returns:
      KeyFactory instance
      Throws:
      JwtException - in case the algorithm is invalid
    • getSignature

      public static Signature getSignature(String signatureAlgorithm) throws JwtException
      Create a signature for algorithm.
      Parameters:
      signatureAlgorithm - security signature algorithm (such as "SHA512withRSA")
      Returns:
      Signature instance
      Throws:
      JwtException - in case the algorithm is invalid or not supported by this JVM
    • getMac

      public static Mac getMac(String algorithm) throws JwtException
      Create a MAC for algorithm. Similar to signature for symmetric ciphers (such as "HmacSHA256").
      Parameters:
      algorithm - security MAC algorithm
      Returns:
      Mac instance
      Throws:
      JwtException - in case the algorithm is invalid or not supported by this JVM
    • transformToJson

      public static Map<String,JsonValue> transformToJson(Map<String,Object> claims)
      Transform a map of strings to objects to a map of string to JSON values. Each object is checked for type and if supported, transformed to appropriate JSON value.
      Parameters:
      claims - map to transform from
      Returns:
      resulting map
    • toJson

      public static JsonValue toJson(Object object)
      Create a JsonValue from an object. This will use correct types for known primitives, JwtUtil.Address otherwise it uses String value.
      Parameters:
      object - object to create json value from
      Returns:
      json value
    • toObject

      public static Object toObject(JsonValue jsonValue)
      Transform from json to object.
      Parameters:
      jsonValue - json value
      Returns:
      object most correct for the type, or string value if not understood (e.g. json object)