Package com.auth0.jwt

Class JWTVerifier.BaseVerification

java.lang.Object
com.auth0.jwt.JWTVerifier.BaseVerification
All Implemented Interfaces:
Verification
Enclosing class:
JWTVerifier

public static class JWTVerifier.BaseVerification extends Object implements Verification
Verification implementation that accepts all the expected Claim values for verification.
  • Method Details

    • withIssuer

      public Verification withIssuer(String... issuer)
      Description copied from interface: Verification
      Verifies whether the JWT contains an Issuer ("iss") claim that contains all the values provided. This check is case-sensitive. An empty array is considered as a null.
      Specified by:
      withIssuer in interface Verification
      Parameters:
      issuer - the required Issuer value. If multiple values are given, the claim must at least match one of them
      Returns:
      this same Verification instance.
    • withSubject

      public Verification withSubject(String subject)
      Description copied from interface: Verification
      Verifies whether the JWT contains a Subject ("sub") claim that equals to the value provided. This check is case-sensitive.
      Specified by:
      withSubject in interface Verification
      Parameters:
      subject - the required Subject value
      Returns:
      this same Verification instance.
    • withAudience

      public Verification withAudience(String... audience)
      Description copied from interface: Verification
      Verifies whether the JWT contains an Audience ("aud") claim that contains all the values provided. This check is case-sensitive. An empty array is considered as a null.
      Specified by:
      withAudience in interface Verification
      Parameters:
      audience - the required Audience value
      Returns:
      this same Verification instance.
    • withAnyOfAudience

      public Verification withAnyOfAudience(String... audience)
      Description copied from interface: Verification
      Verifies whether the JWT contains an Audience ("aud") claim contain at least one of the specified audiences. This check is case-sensitive. An empty array is considered as a null.
      Specified by:
      withAnyOfAudience in interface Verification
      Parameters:
      audience - the required Audience value for which the "aud" claim must contain at least one value.
      Returns:
      this same Verification instance.
    • acceptLeeway

      public Verification acceptLeeway(long leeway) throws IllegalArgumentException
      Description copied from interface: Verification
      Define the default window in seconds in which the Not Before, Issued At and Expires At Claims will still be valid. Setting a specific leeway value on a given Claim will override this value for that Claim.
      Specified by:
      acceptLeeway in interface Verification
      Parameters:
      leeway - the window in seconds in which the Not Before, Issued At and Expires At Claims will still be valid.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if leeway is negative.
    • acceptExpiresAt

      public Verification acceptExpiresAt(long leeway) throws IllegalArgumentException
      Description copied from interface: Verification
      Set a specific leeway window in seconds in which the Expires At ("exp") Claim will still be valid. Expiration Date is always verified when the value is present. This method overrides the value set with acceptLeeway
      Specified by:
      acceptExpiresAt in interface Verification
      Parameters:
      leeway - the window in seconds in which the Expires At Claim will still be valid.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if leeway is negative.
    • acceptNotBefore

      public Verification acceptNotBefore(long leeway) throws IllegalArgumentException
      Description copied from interface: Verification
      Set a specific leeway window in seconds in which the Not Before ("nbf") Claim will still be valid. Not Before Date is always verified when the value is present. This method overrides the value set with acceptLeeway
      Specified by:
      acceptNotBefore in interface Verification
      Parameters:
      leeway - the window in seconds in which the Not Before Claim will still be valid.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if leeway is negative.
    • acceptIssuedAt

      public Verification acceptIssuedAt(long leeway) throws IllegalArgumentException
      Description copied from interface: Verification
      Set a specific leeway window in seconds in which the Issued At ("iat") Claim will still be valid. This method overrides the value set with Verification.acceptLeeway(long). By default, the Issued At claim is always verified when the value is present, unless disabled with Verification.ignoreIssuedAt(). If Issued At verification has been disabled, no verification of the Issued At claim will be performed, and this method has no effect.
      Specified by:
      acceptIssuedAt in interface Verification
      Parameters:
      leeway - the window in seconds in which the Issued At Claim will still be valid.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if leeway is negative.
    • ignoreIssuedAt

      public Verification ignoreIssuedAt()
      Description copied from interface: Verification
      Skip the Issued At ("iat") claim verification. By default, the verification is performed.
      Specified by:
      ignoreIssuedAt in interface Verification
      Returns:
      this same Verification instance.
    • withJWTId

      public Verification withJWTId(String jwtId)
      Description copied from interface: Verification
      Verifies whether the JWT contains a JWT ID ("jti") claim that equals to the value provided. This check is case-sensitive.
      Specified by:
      withJWTId in interface Verification
      Parameters:
      jwtId - the required ID value
      Returns:
      this same Verification instance.
    • withClaimPresence

      public Verification withClaimPresence(String name) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is present in the JWT, with any value including null.
      Specified by:
      withClaimPresence in interface Verification
      Parameters:
      name - the Claim's name.
      Returns:
      this same Verification instance
      Throws:
      IllegalArgumentException - if the name is null.
    • withNullClaim

      public Verification withNullClaim(String name) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is present with a null value.
      Specified by:
      withNullClaim in interface Verification
      Parameters:
      name - the Claim's name.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, Boolean value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given Boolean value.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, Integer value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given Integer value.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, Long value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given Long value.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, Double value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given Integer value.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, String value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given String value. This check is case-sensitive.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, Date value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given Date value. Note that date-time claims are serialized as seconds since the epoch; when verifying date-time claim value, any time units more granular than seconds will not be considered.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, Instant value) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim is equal to the given Instant value. Note that date-time claims are serialized as seconds since the epoch; when verifying a date-time claim value, any time units more granular than seconds will not be considered.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name.
      value - the Claim's value.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withClaim

      public Verification withClaim(String name, BiPredicate<Claim,​DecodedJWT> predicate) throws IllegalArgumentException
      Description copied from interface: Verification
      Executes the predicate provided and the validates the JWT if the predicate returns true.
      Specified by:
      withClaim in interface Verification
      Parameters:
      name - the Claim's name
      predicate - the predicate check to be done.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withArrayClaim

      public Verification withArrayClaim(String name, String... items) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim contain at least the given String items.
      Specified by:
      withArrayClaim in interface Verification
      Parameters:
      name - the Claim's name.
      items - the items the Claim must contain.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withArrayClaim

      public Verification withArrayClaim(String name, Integer... items) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim contain at least the given Integer items.
      Specified by:
      withArrayClaim in interface Verification
      Parameters:
      name - the Claim's name.
      items - the items the Claim must contain.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • withArrayClaim

      public Verification withArrayClaim(String name, Long... items) throws IllegalArgumentException
      Description copied from interface: Verification
      Verifies whether the claim contain at least the given Long items.
      Specified by:
      withArrayClaim in interface Verification
      Parameters:
      name - the Claim's name.
      items - the items the Claim must contain.
      Returns:
      this same Verification instance.
      Throws:
      IllegalArgumentException - if the name is null.
    • build

      public JWTVerifier build()
      Description copied from interface: Verification
      Creates a new and reusable instance of the JWTVerifier with the configuration already provided.
      Specified by:
      build in interface Verification
      Returns:
      a new JWTVerifier instance.
    • build

      public JWTVerifier build(Clock clock)
      Creates a new and reusable instance of the JWTVerifier with the configuration already provided. ONLY FOR TEST PURPOSES.
      Parameters:
      clock - the instance that will handle the current time.
      Returns:
      a new JWTVerifier instance with a custom Clock
    • getLeewayFor

      public long getLeewayFor(String name)
      Fetches the Leeway set for claim or returns the defaultLeeway.
      Parameters:
      name - Claim for which leeway is fetched
      Returns:
      Leeway value set for the claim