public abstract class Verifier
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected byte[] |
body |
protected java.util.LinkedHashMap<com.truelayer.signing.HeaderName,java.lang.String> |
headers |
protected java.lang.String |
method |
protected java.lang.String |
path |
protected java.util.HashSet<java.lang.String> |
requiredHeaders |
| Constructor and Description |
|---|
Verifier() |
| Modifier and Type | Method and Description |
|---|---|
Verifier |
body(byte[] body)
Add the full unmodified request body.
|
Verifier |
body(java.lang.String body)
Add the full unmodified request body.
|
static java.lang.String |
extractJku(java.lang.String tlSignature)
Extract jku (JSON Web Key URL) from unverified jws Tl-Signature.
|
static Verifier |
from(byte[] publicKeyPem)
Start building a `Tl-Signature` header verifier using public key RFC 7468 PEM-encoded data.
|
static Verifier |
from(java.security.interfaces.ECPublicKey publicKeyPem)
Start building a `Tl-Signature` header verifier using public key RFC 7468 PEM-encoded data.
|
static Verifier |
from(java.lang.String publicKeyPem)
Start building a `Tl-Signature` header verifier using public key RFC 7468 PEM-encoded data.
|
Verifier |
header(java.lang.String name,
java.lang.String value)
Add a header name and value.
|
Verifier |
headers(java.util.Map<java.lang.String,java.lang.String> headers)
Add a Map of headers.
|
Verifier |
method(java.lang.String method)
Add the request method.
|
Verifier |
path(java.lang.String path)
Add the request absolute path starting with a leading `/` and without any trailing slashes.
|
Verifier |
requiredHeader(java.lang.String name)
Require a header name that must be included in the `Tl-Signature`.
|
protected java.util.Map<com.truelayer.signing.HeaderName,java.lang.String> |
validateSignatureHeader(com.nimbusds.jose.JWSHeader jwsHeader) |
abstract void |
verify(java.lang.String signature)
Verify the given `Tl-Signature` header value.
|
static Verifier |
verifyWithJwks(java.lang.String jwks)
Start building a `Tl-Signature` header verifier using public key JWKs JSON response data.
|
protected java.lang.String method
protected java.lang.String path
protected byte[] body
protected final java.util.LinkedHashMap<com.truelayer.signing.HeaderName,java.lang.String> headers
protected final java.util.HashSet<java.lang.String> requiredHeaders
public static java.lang.String extractJku(java.lang.String tlSignature)
tlSignature - unverified jws Tl-SignatureSignatureException - if the signature is invalidpublic Verifier method(java.lang.String method)
method - - the request method must be non nulljava.lang.IllegalArgumentException - if the provided param is nullpublic Verifier path(java.lang.String path)
path - - the request absolute path must not be nulljava.lang.IllegalArgumentException - if the provided param is null or invalidpublic Verifier body(byte[] body)
body - - the full request body must not be nulljava.lang.IllegalArgumentException - if the provided param is nullpublic Verifier body(java.lang.String body)
body - - the full request body must not be nulljava.lang.IllegalArgumentException - if the provided param is nullpublic Verifier headers(java.util.Map<java.lang.String,java.lang.String> headers)
headers - - must not be nulljava.lang.IllegalArgumentException - if the provided params are nullpublic Verifier header(java.lang.String name, java.lang.String value)
name - - must not be nullvalue - - must not be nulljava.lang.IllegalArgumentException - if the provided param is nullpublic Verifier requiredHeader(java.lang.String name)
name - - must not be nulljava.lang.IllegalArgumentException - if the provided param is nullpublic static Verifier from(byte[] publicKeyPem)
publicKeyPem - the public key 7468 PEM-encoded data - must not be nullKeyException - it the provided key is invalidjava.lang.IllegalArgumentException - if the provided param is nullpublic static Verifier from(java.lang.String publicKeyPem)
publicKeyPem - the public key 7468 PEM-encoded data - must not be nullKeyException - it the provided key is invalidjava.lang.IllegalArgumentException - if the provided param is nullpublic static Verifier from(java.security.interfaces.ECPublicKey publicKeyPem)
publicKeyPem - the public key 7468 PEM-encoded data - must not be nullKeyException - it the provided key is invalidjava.lang.IllegalArgumentException - if the provided param is nullpublic static Verifier verifyWithJwks(java.lang.String jwks)
jwks - public key JWKs JSON response dataSignatureException - if the provided jwks is invalidpublic abstract void verify(java.lang.String signature)
signature - the given `TL-signature`SignatureException - if Signature is invalidprotected java.util.Map<com.truelayer.signing.HeaderName,java.lang.String> validateSignatureHeader(com.nimbusds.jose.JWSHeader jwsHeader)