pdi.jwt

package pdi.jwt

Type members

Classlikes

object Jwt extends JwtCore[JwtHeader, JwtClaim]

Test implementation of JwtCore using only Strings. Most of the time, you should use a lib implementing JSON and shouldn't be using this object. But just in case you need pure Scala support, here it is.

Test implementation of JwtCore using only Strings. Most of the time, you should use a lib implementing JSON and shouldn't be using this object. But just in case you need pure Scala support, here it is.

To see a full list of samples, check the online documentation.

'''Warning''': since there is no JSON support in Scala, this object doesn't have any way to parse a JSON string as an AST, so it only uses regex with all the limitations it implies. Try not to use keys like exp and nbf in sub-objects of the claim. For example, if you try to use the following claim: {"user":{"exp":1},"exp":1300819380}, it should be correct but it will fail because the regex extracting the expiration will return 1 instead of 1300819380. Sorry about that.

Companion
class
class Jwt extends JwtCore[JwtHeader, JwtClaim]
Companion
object
sealed trait JwtAlgorithm
Companion
object
object JwtAlgorithm
Companion
class
object JwtBase64
object JwtClaim
Companion
class
class JwtClaim(val content: String, val issuer: Option[String], val subject: Option[String], val audience: Option[Set[String]], val expiration: Option[Long], val notBefore: Option[Long], val issuedAt: Option[Long], val jwtId: Option[String])
Companion
object
trait JwtCore[H, C]

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.

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.

Type Params
C

the type of the extracted claim from a JSON Web Token

H

the type of the extracted header from a JSON Web Token

object JwtHeader
Companion
class
class JwtHeader(val algorithm: Option[JwtAlgorithm], val typ: Option[String], val contentType: Option[String], val keyId: Option[String])
Companion
object
case class JwtOptions(signature: Boolean, expiration: Boolean, notBefore: Boolean, leeway: Long)
Companion
object
object JwtOptions
Companion
class
object JwtTime

Util object to handle time operations

Util object to handle time operations

object JwtUtils