pdi.jwt

JwtCore

trait JwtCore[H, C] extends AnyRef

Provide the main logic around Base64 encoding / decoding and signature using the correct algorithm. H and C types are respesctively the header type and the claim type. For the core project, they will be String but you are free to extend this trait using other types like JsObject or anything else.

Please, check implementations, like Jwt, for code samples.

H

the type of the extracted header from a JSON Web Token

C

the type of the extracted claim from a JSON Web Token

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. JwtCore
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def extractAlgorithm(header: H): Option[JwtAlgorithm]

    Attributes
    protected
  2. abstract def extractExpiration(claim: C): Option[Long]

    Attributes
    protected
  3. abstract def extractNotBefore(claim: C): Option[Long]

    Attributes
    protected
  4. abstract def parseClaim(claim: String): C

    Attributes
    protected
  5. abstract def parseHeader(header: String): H

    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def decode(token: String, key: PublicKey): Try[C]

    An alias of decode if you want to directly pass a string key rather than an Option

    An alias of decode if you want to directly pass a string key rather than an Option

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, the claim of the token in its correct type

  9. def decode(token: String, key: SecretKey): Try[C]

    An alias of decode if you want to directly pass a string key rather than an Option

    An alias of decode if you want to directly pass a string key rather than an Option

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, the claim of the token in its correct type

  10. def decode(token: String, key: String): Try[C]

    An alias of decode if you want to directly pass a string key rather than an Option

    An alias of decode if you want to directly pass a string key rather than an Option

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, the claim of the token in its correct type

  11. def decode(token: String): Try[C]

    Same as decodeAll but only return the claim

    Same as decodeAll but only return the claim

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    returns

    if successful, the claim of the token in its correct type

  12. def decodeAll(token: String, key: PublicKey): Try[(H, C, String)]

    An alias of decodeAll if you want to directly pass a string key rather than an Option

    An alias of decodeAll if you want to directly pass a string key rather than an Option

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a tuple representing the header, the claim and eventually the signature

  13. def decodeAll(token: String, key: SecretKey): Try[(H, C, String)]

    An alias of decodeAll if you want to directly pass a string key rather than an Option

    An alias of decodeAll if you want to directly pass a string key rather than an Option

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a tuple representing the header, the claim and eventually the signature

  14. def decodeAll(token: String, key: String): Try[(H, C, String)]

    An alias of decodeAll if you want to directly pass a string key rather than an Option

    An alias of decodeAll if you want to directly pass a string key rather than an Option

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a tuple representing the header, the claim and eventually the signature

  15. def decodeAll(token: String): Try[(H, C, String)]

    Same as decodeRawAll but return the real header and claim types

    Same as decodeRawAll but return the real header and claim types

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    returns

    if successful, a tuple representing the header, the claim and eventually the signature

  16. def decodeRaw(token: String, key: PublicKey): Try[String]

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a string representing the JSON version of the claim

  17. def decodeRaw(token: String, key: SecretKey): Try[String]

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a string representing the JSON version of the claim

  18. def decodeRaw(token: String, key: String): Try[String]

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a string representing the JSON version of the claim

  19. def decodeRaw(token: String): Try[String]

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    Same as decodeRawAll but only return the claim (you only care about the claim most of the time)

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    returns

    if successful, a string representing the JSON version of the claim

  20. def decodeRawAll(token: String, key: PublicKey): Try[(String, String, String)]

    Will try to decode a JSON Web Token to raw strings

    Will try to decode a JSON Web Token to raw strings

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a tuple of 3 strings, the header, the claim and the signature

  21. def decodeRawAll(token: String, key: SecretKey): Try[(String, String, String)]

    Will try to decode a JSON Web Token to raw strings

    Will try to decode a JSON Web Token to raw strings

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a tuple of 3 strings, the header, the claim and the signature

  22. def decodeRawAll(token: String, key: String): Try[(String, String, String)]

    Will try to decode a JSON Web Token to raw strings

    Will try to decode a JSON Web Token to raw strings

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    if successful, a tuple of 3 strings, the header, the claim and the signature

  23. def decodeRawAll(token: String): Try[(String, String, String)]

    Will try to decode a JSON Web Token to raw strings

    Will try to decode a JSON Web Token to raw strings

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    returns

    if successful, a tuple of 3 strings, the header, the claim and the signature

  24. def encode(header: JwtHeader, claim: JwtClaim, key: Key): String

    An alias of encode if you only want to pass a string as the key, the algorithm will be deduced from the header.

    An alias of encode if you only want to pass a string as the key, the algorithm will be deduced from the header.

    header

    the header to stringify as a JSON before encoding the token

    claim

    the claim to stringify as a JSON before encoding the token

    key

    the secret key to use to sign the token (note that the algorithm will be deduced from the header)

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  25. def encode(header: JwtHeader, claim: JwtClaim, key: String): String

    An alias of encode if you only want to pass a string as the key, the algorithm will be deduced from the header.

    An alias of encode if you only want to pass a string as the key, the algorithm will be deduced from the header.

    header

    the header to stringify as a JSON before encoding the token

    claim

    the claim to stringify as a JSON before encoding the token

    key

    the secret key to use to sign the token (note that the algorithm will be deduced from the header)

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  26. def encode(header: JwtHeader, claim: JwtClaim): String

    An alias to encode if you want to use case classes for the header and the claim rather than strings, they will just be stringified to JSON format.

    An alias to encode if you want to use case classes for the header and the claim rather than strings, they will just be stringified to JSON format.

    header

    the header to stringify as a JSON before encoding the token

    claim

    the claim to stringify as a JSON before encoding the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  27. def encode(claim: JwtClaim, key: PrivateKey, algorithm: JwtAsymetricAlgorithm): String

    An alias to encode which will provide an automatically generated header and use the claim as a case class.

    An alias to encode which will provide an automatically generated header and use the claim as a case class.

    claim

    the claim of the JSON Web Token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  28. def encode(claim: JwtClaim, key: SecretKey, algorithm: JwtHmacAlgorithm): String

    An alias to encode which will provide an automatically generated header and use the claim as a case class.

    An alias to encode which will provide an automatically generated header and use the claim as a case class.

    claim

    the claim of the JSON Web Token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  29. def encode(claim: JwtClaim, key: String, algorithm: JwtAlgorithm): String

    An alias to encode which will provide an automatically generated header and use the claim as a case class.

    An alias to encode which will provide an automatically generated header and use the claim as a case class.

    claim

    the claim of the JSON Web Token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  30. def encode(claim: JwtClaim): String

    An alias to encode which will provide an automatically generated header and setting both key and algorithm to None.

    An alias to encode which will provide an automatically generated header and setting both key and algorithm to None.

    claim

    the claim of the JSON Web Token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  31. def encode(claim: String, key: PrivateKey, algorithm: JwtAsymetricAlgorithm): String

    An alias to encode which will provide an automatically generated header and allowing you to get rid of Option for the key and the algorithm.

    An alias to encode which will provide an automatically generated header and allowing you to get rid of Option for the key and the algorithm.

    claim

    a valid stringified JSON representing the claim of the token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  32. def encode(claim: String, key: SecretKey, algorithm: JwtHmacAlgorithm): String

    An alias to encode which will provide an automatically generated header and allowing you to get rid of Option for the key and the algorithm.

    An alias to encode which will provide an automatically generated header and allowing you to get rid of Option for the key and the algorithm.

    claim

    a valid stringified JSON representing the claim of the token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  33. def encode(claim: String, key: String, algorithm: JwtAlgorithm): String

    An alias to encode which will provide an automatically generated header and allowing you to get rid of Option for the key and the algorithm.

    An alias to encode which will provide an automatically generated header and allowing you to get rid of Option for the key and the algorithm.

    claim

    a valid stringified JSON representing the claim of the token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  34. def encode(claim: String): String

    An alias to encode which will provide an automatically generated header.

    An alias to encode which will provide an automatically generated header.

    claim

    a valid stringified JSON representing the claim of the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  35. def encode(header: String, claim: String, key: PrivateKey, algorithm: JwtAsymetricAlgorithm): String

  36. def encode(header: String, claim: String, key: SecretKey, algorithm: JwtHmacAlgorithm): String

  37. def encode(header: String, claim: String, key: String, algorithm: JwtAlgorithm): String

    Encode a JSON Web Token from its different parts.

    Encode a JSON Web Token from its different parts. Both the header and the claim will be encoded to Base64 url-safe, then a signature will be eventually generated from it if you did pass a key and an algorithm, and finally, those three parts will be merged as a single string, using dots as separator.

    header

    a valid stringified JSON representing the header of the token

    claim

    a valid stringified JSON representing the claim of the token

    key

    the key that will be used to check the token signature

    algorithm

    the algorithm to sign the token

    returns

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

  38. def encode(header: String, claim: String): String

  39. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  40. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  41. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  42. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  43. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  44. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  45. def isValid(token: String, key: PublicKey): Boolean

    An alias for isValid if you want to directly pass a string as the key

    An alias for isValid if you want to directly pass a string as the key

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    a boolean value indicating if the token is valid or not

  46. def isValid(token: String, key: SecretKey): Boolean

    An alias for isValid if you want to directly pass a string as the key

    An alias for isValid if you want to directly pass a string as the key

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    a boolean value indicating if the token is valid or not

  47. def isValid(token: String, key: String): Boolean

    An alias for isValid if you want to directly pass a string as the key

    An alias for isValid if you want to directly pass a string as the key

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    returns

    a boolean value indicating if the token is valid or not

  48. def isValid(token: String): Boolean

    Test if a token is valid.

    Test if a token is valid. Doesn't throw any exception.

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    returns

    a boolean value indicating if the token is valid or not

  49. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  50. final def notify(): Unit

    Definition Classes
    AnyRef
  51. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  52. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  53. def toString(): String

    Definition Classes
    AnyRef → Any
  54. def validate(token: String, key: PublicKey): Unit

    An alias of validate in case you want to directly pass a string key.

    An alias of validate in case you want to directly pass a string key.

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    Exceptions thrown
    IllegalArgumentException

    couldn't decode the token since it's not a valid base64 string

    JwtExpirationException

    the token isn't valid anymore because its expiration attribute is in the past

    JwtLengthException

    the number of parts separated by dots is wrong

    JwtNotBeforeException

    the token isn't valid yet because its notBefore attribute is in the future

    JwtValidationException

    default validation exeption

  55. def validate(token: String, key: SecretKey): Unit

    An alias of validate in case you want to directly pass a string key.

    An alias of validate in case you want to directly pass a string key.

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    Exceptions thrown
    IllegalArgumentException

    couldn't decode the token since it's not a valid base64 string

    JwtExpirationException

    the token isn't valid anymore because its expiration attribute is in the past

    JwtLengthException

    the number of parts separated by dots is wrong

    JwtNotBeforeException

    the token isn't valid yet because its notBefore attribute is in the future

    JwtValidationException

    default validation exeption

  56. def validate(token: String, key: String): Unit

    An alias of validate in case you want to directly pass a string key.

    An alias of validate in case you want to directly pass a string key.

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    key

    the key that will be used to check the token signature

    Exceptions thrown
    IllegalArgumentException

    couldn't decode the token since it's not a valid base64 string

    JwtExpirationException

    the token isn't valid anymore because its expiration attribute is in the past

    JwtLengthException

    the number of parts separated by dots is wrong

    JwtNotBeforeException

    the token isn't valid yet because its notBefore attribute is in the future

    JwtValidationException

    default validation exeption

  57. def validate(token: String): Unit

    Valid a token: doesn't return anything but will thrown exceptions if there are any errors.

    Valid a token: doesn't return anything but will thrown exceptions if there are any errors.

    token

    a JSON Web Token as a Base64 url-safe encoded String which can be used inside an HTTP header

    Exceptions thrown
    IllegalArgumentException

    couldn't decode the token since it's not a valid base64 string

    JwtExpirationException

    the token isn't valid anymore because its expiration attribute is in the past

    JwtLengthException

    the number of parts separated by dots is wrong

    JwtNotBeforeException

    the token isn't valid yet because its notBefore attribute is in the future

    JwtValidationException

    default validation exeption

  58. def validate(header64: String, header: H, claim64: String, claim: C, signature: String, key: PublicKey): Unit

    Attributes
    protected
  59. def validate(header64: String, header: H, claim64: String, claim: C, signature: String, key: SecretKey): Unit

    Attributes
    protected
  60. def validate(header64: String, header: H, claim64: String, claim: C, signature: String, key: String): Unit

    Attributes
    protected
  61. def validate(header64: String, header: H, claim64: String, claim: C, signature: String, verify: (Array[Byte], Array[Byte], JwtAlgorithm) ⇒ Boolean): Unit

    Attributes
    protected
  62. def validate(header: H, claim: C, signature: String): Unit

    Attributes
    protected
  63. def validateTiming(claim: C): Unit

    Attributes
    protected
  64. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  65. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  66. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped