pdi.jwt

JwtCore

Related Doc: package jwt

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: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. 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

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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

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

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

  35. 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

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

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

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

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

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

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

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

    Definition Classes
    Any
  43. 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

  44. 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

  45. 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

  46. 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

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

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

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

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

    Definition Classes
    AnyRef
  51. def toString(): String

    Definition Classes
    AnyRef → Any
  52. 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

  53. 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

  54. 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

  55. 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

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

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

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

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

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

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

    Attributes
    protected
  62. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped