Class Webhook.Signature

java.lang.Object
com.stripe.net.Webhook.Signature
Enclosing class:
Webhook

public static final class Webhook.Signature extends Object
  • Field Details

  • Constructor Details

    • Signature

      public Signature()
  • Method Details

    • verifyHeader

      public static boolean verifyHeader(String payload, String sigHeader, String secret, long tolerance) throws SignatureVerificationException
      Verifies the signature header sent by Stripe. Throws a SignatureVerificationException if the verification fails for any reason.
      Parameters:
      payload - the payload sent by Stripe.
      sigHeader - the contents of the signature header sent by Stripe.
      secret - secret used to generate the signature.
      tolerance - maximum difference allowed between the header's timestamp and the current time
      Throws:
      SignatureVerificationException - if the verification fails.
    • verifyHeader

      public static boolean verifyHeader(String payload, String sigHeader, String secret, long tolerance, Clock clock) throws SignatureVerificationException
      Verifies the authenticity (and recency) of a webhook, throwing a SignatureVerificationException if there's a mismatch. Useful for quickly validating incoming webhooks before storing them for later processing (at which time you can use the *WithoutVerification methods for parsing).
      Parameters:
      payload - the payload sent by Stripe.
      sigHeader - the contents of the signature header sent by Stripe.
      secret - secret used to generate the signature.
      tolerance - maximum difference allowed between the header's timestamp and the current time
      clock - instance of clock if you want to use custom time instance
      Throws:
      SignatureVerificationException - if the verification fails.
    • generateSignatureHeader

      public static String generateSignatureHeader(String payload, String secret) throws NoSuchAlgorithmException, InvalidKeyException
      Generates a Stripe-Signature header for the given payload and secret using the current timestamp.
      Parameters:
      payload - the payload to sign.
      secret - the webhook secret.
      Returns:
      the generated signature header string.
      Throws:
      NoSuchAlgorithmException
      InvalidKeyException
    • generateSignatureHeader

      public static String generateSignatureHeader(String payload, String secret, long timestamp) throws NoSuchAlgorithmException, InvalidKeyException
      Compute the Stripe-Signature header for a given webhook body & secret. Useful for signing payloads in unit tests.
      Parameters:
      payload - the payload to sign.
      secret - the webhook secret.
      timestamp - the timestamp to use (seconds since epoch).
      Returns:
      the generated signature header string.
      Throws:
      NoSuchAlgorithmException
      InvalidKeyException