1package dev.rafex.ether.jwt;
3import java.time.Instant;
4import java.util.Objects;
32import dev.rafex.ether.jwt.internal.ClaimsMapper;
33import dev.rafex.ether.jwt.internal.JwtCodec;
34import dev.rafex.ether.jwt.internal.JwtSigner;
35import dev.rafex.ether.jwt.internal.TokenValidator;
43 this.config = Objects.requireNonNull(config,
"config");
44 validateVerifierConfig(config);
52 if (tokenAlg ==
null || tokenAlg != config.keyProvider().algorithm()) {
56 if (!
JwtSigner.
verify(parsed.signingInput(), parsed.encodedSignature(), config)) {
63 now ==
null ? Instant.now() : now, tokenTypeRaw);
69 }
catch (
final IllegalArgumentException e) {
71 }
catch (
final Exception e) {
78 throw new IllegalArgumentException(
"HS256 requires explicit hmac secret");
80 if (
config.keyProvider().algorithm() == JwtAlgorithm.RS256 &&
config.keyProvider().publicKey() ==
null) {
81 throw new IllegalArgumentException(
"RS256 requires public key for verification");
VerificationResult verify(final String token, final Instant now)
DefaultTokenVerifier(final JwtConfig config)
Configures JWT signing and verification behavior.
Normalized claims extracted from a JWT token.
Result returned by token verification.
static VerificationResult fail(final VerificationCode code)
static String tokenTypeRaw(final JsonNode payload)
static TokenClaims fromPayload(final JsonNode payload)
static ParsedJwt parse(final String token)
static boolean verify(final String signingInput, final String encodedSignature, final JwtConfig config)
Valida tokens JWT contra las reglas de configuración.
static VerificationCode validate(final TokenClaims claims, final JsonNode payload, final JwtConfig config, final Instant now, final String tokenTypeRaw)
Valida las reclamaciones (claims) del token según la configuración.
Supported JWT signature algorithms.
static JwtAlgorithm fromHeaderValue(final String value)
Stable verification error/success codes.
API for verifying JWT tokens.
Typed configuration entry points and composition APIs for Ether applications.