All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.innfactory.akka.jwt.JwtValidator.scala Maven / Gradle / Ivy

package de.innfactory.akka.jwt

import com.nimbusds.jwt.JWTClaimsSet
import com.nimbusds.jwt.proc.BadJWTException

final case class JwtToken(content: String) extends AnyVal

sealed abstract class ValidationError(message: String)
    extends BadJWTException(message)
case object EmptyJwtTokenContent extends ValidationError("Empty JWT token")
case object AutoInvalidByValidator extends ValidationError("auto-invalid")
case object InvalidJwtToken extends ValidationError("Invalid JWT token")
case object MissingExpirationClaim
    extends ValidationError("Missing `exp` claim")
case object InvalidTokenUseClaim
    extends ValidationError("Invalid `token_use` claim")
case object InvalidTokenIssuerClaim
    extends ValidationError("Invalid `iss` claim")
case object InvalidTokenSubject extends ValidationError("Invalid `sub` claim")
case class UnknownException(exception: Exception)
    extends ValidationError("Unknown JWT validation error")

trait JwtValidator {
  def validate(
      jwtToken: JwtToken): Either[BadJWTException, (JwtToken, JWTClaimsSet)]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy