Class JwtTokenValidator
- java.lang.Object
-
- io.micronaut.security.token.jwt.validator.JwtTokenValidator
-
- All Implemented Interfaces:
io.micronaut.core.order.Ordered,TokenValidator
@Singleton public class JwtTokenValidator extends java.lang.Object implements TokenValidator
- Since:
- 1.0
- Author:
- Sergio del Amo
- See Also:
- Validating JWT Access Tokens
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<EncryptionConfiguration>encryptionConfigurationsprotected java.util.List<GenericJwtClaimsValidator>genericJwtClaimsValidatorsprotected JwtAuthenticationFactoryjwtAuthenticationFactoryprotected java.util.List<SignatureConfiguration>signatureConfigurations
-
Constructor Summary
Constructors Constructor Description JwtTokenValidator(java.util.Collection<SignatureConfiguration> signatureConfigurations, java.util.Collection<EncryptionConfiguration> encryptionConfigurations)Deprecated.JwtTokenValidator(java.util.Collection<SignatureConfiguration> signatureConfigurations, java.util.Collection<EncryptionConfiguration> encryptionConfigurations, java.util.Collection<GenericJwtClaimsValidator> genericJwtClaimsValidators, JwtAuthenticationFactory jwtAuthenticationFactory)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Optional<Authentication>authenticationIfValidJwtSignatureAndClaims(java.lang.String token, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)Authentication if JWT has valid signature and claims are verified.java.util.List<EncryptionConfiguration>getEncryptionConfigurations()java.util.List<GenericJwtClaimsValidator>getGenericJwtClaimsValidators()java.util.List<SignatureConfiguration>getSignatureConfigurations()java.util.Optional<com.nimbusds.jwt.JWT>parseJwtIfValidSignature(java.lang.String token)Retuns a JWT if the signature could be verified.booleanvalidate(java.lang.String token)booleanvalidate(java.lang.String token, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)java.util.Optional<com.nimbusds.jwt.JWT>validateEncryptedJWTSignature(com.nimbusds.jwt.EncryptedJWT encryptedJWT, java.lang.String token)Validates a encrypted JWT Signature.java.util.Optional<com.nimbusds.jwt.JWT>validateJwtSignatureAndClaims(java.lang.String token)Validates JWT signature and Claims.java.util.Optional<com.nimbusds.jwt.JWT>validateJwtSignatureAndClaims(java.lang.String token, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)Validates JWT signature and Claims.java.util.Optional<com.nimbusds.jwt.JWT>validatePlainJWTSignature(com.nimbusds.jwt.JWT jwt)Validates the Signature of a plain JWT.java.util.Optional<com.nimbusds.jwt.JWT>validateSignedJWTSignature(com.nimbusds.jwt.SignedJWT signedJWT)Validates a Signed JWT signature.org.reactivestreams.Publisher<Authentication>validateToken(java.lang.String token)Validates the provided token and returns the authentication state.booleanverifyClaims(com.nimbusds.jwt.JWTClaimsSet jwtClaimsSet, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)Verifies the provided claims with the provided validators.
-
-
-
Field Detail
-
signatureConfigurations
protected final java.util.List<SignatureConfiguration> signatureConfigurations
-
encryptionConfigurations
protected final java.util.List<EncryptionConfiguration> encryptionConfigurations
-
genericJwtClaimsValidators
protected final java.util.List<GenericJwtClaimsValidator> genericJwtClaimsValidators
-
jwtAuthenticationFactory
protected final JwtAuthenticationFactory jwtAuthenticationFactory
-
-
Constructor Detail
-
JwtTokenValidator
@Inject public JwtTokenValidator(java.util.Collection<SignatureConfiguration> signatureConfigurations, java.util.Collection<EncryptionConfiguration> encryptionConfigurations, java.util.Collection<GenericJwtClaimsValidator> genericJwtClaimsValidators, JwtAuthenticationFactory jwtAuthenticationFactory)
Constructor.- Parameters:
signatureConfigurations- List of Signature configurations which are used to attempt validation.encryptionConfigurations- List of Encryption configurations which are used to attempt validation.genericJwtClaimsValidators- Generic JWT Claims validators which should be used to validate any JWT.jwtAuthenticationFactory- Utility to generate an Authentication given a JWT.
-
JwtTokenValidator
@Deprecated public JwtTokenValidator(java.util.Collection<SignatureConfiguration> signatureConfigurations, java.util.Collection<EncryptionConfiguration> encryptionConfigurations)
Deprecated.Deprecated Constructor.- Parameters:
signatureConfigurations- List of Signature configurations which are used to attempt validation.encryptionConfigurations- List of Encryption configurations which are used to attempt validation.
-
-
Method Detail
-
validatePlainJWTSignature
public java.util.Optional<com.nimbusds.jwt.JWT> validatePlainJWTSignature(com.nimbusds.jwt.JWT jwt)
Validates the Signature of a plain JWT.- Parameters:
jwt- a JWT Token- Returns:
- empty if signature configurations exists, Optional.of(jwt) if no signature configuration is available.
-
validateSignedJWTSignature
public java.util.Optional<com.nimbusds.jwt.JWT> validateSignedJWTSignature(com.nimbusds.jwt.SignedJWT signedJWT)
Validates a Signed JWT signature.- Parameters:
signedJWT- a Signed JWT Token- Returns:
- empty if signature validation fails
-
verifyClaims
public boolean verifyClaims(com.nimbusds.jwt.JWTClaimsSet jwtClaimsSet, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)Verifies the provided claims with the provided validators.- Parameters:
jwtClaimsSet- JWT ClaimsclaimsValidators- The claims validators- Returns:
- Whether the JWT claims pass every validation.
-
validateEncryptedJWTSignature
public java.util.Optional<com.nimbusds.jwt.JWT> validateEncryptedJWTSignature(com.nimbusds.jwt.EncryptedJWT encryptedJWT, java.lang.String token)Validates a encrypted JWT Signature.- Parameters:
encryptedJWT- a encrytped JWT Tokentoken- the JWT token as String- Returns:
- empty if signature validation fails
-
validateToken
public org.reactivestreams.Publisher<Authentication> validateToken(java.lang.String token)
Description copied from interface:TokenValidatorValidates the provided token and returns the authentication state.- Specified by:
validateTokenin interfaceTokenValidator- Parameters:
token- The token string.- Returns:
- Publishes
Authenticationbased on the JWT or empty if the validation fails.
-
authenticationIfValidJwtSignatureAndClaims
public java.util.Optional<Authentication> authenticationIfValidJwtSignatureAndClaims(java.lang.String token, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)
Authentication if JWT has valid signature and claims are verified.- Parameters:
token- A JWT tokenclaimsValidators- a Collection of claims Validators.- Returns:
- empty if signature or claims verification failed, An Authentication otherwise.
-
validateJwtSignatureAndClaims
public java.util.Optional<com.nimbusds.jwt.JWT> validateJwtSignatureAndClaims(java.lang.String token)
Validates JWT signature and Claims.- Parameters:
token- A JWT token- Returns:
- empty if signature or claims verification failed, JWT otherwise.
-
validate
public boolean validate(java.lang.String token)
- Parameters:
token- A JWT token- Returns:
- true if signature or claims verification passed
-
validate
public boolean validate(java.lang.String token, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)- Parameters:
token- A JWT tokenclaimsValidators- a Collection of claims Validators.- Returns:
- true if signature or claims verification passed
-
validateJwtSignatureAndClaims
public java.util.Optional<com.nimbusds.jwt.JWT> validateJwtSignatureAndClaims(java.lang.String token, java.util.Collection<? extends JwtClaimsValidator> claimsValidators)Validates JWT signature and Claims.- Parameters:
token- A JWT tokenclaimsValidators- a Collection of claims Validators.- Returns:
- empty if signature or claims verification failed, JWT otherwise.
-
parseJwtIfValidSignature
public java.util.Optional<com.nimbusds.jwt.JWT> parseJwtIfValidSignature(java.lang.String token)
Retuns a JWT if the signature could be verified.- Parameters:
token- a JWT token- Returns:
- Empty if JWT signature verification failed or JWT if valid signature.
-
getSignatureConfigurations
public java.util.List<SignatureConfiguration> getSignatureConfigurations()
- Returns:
- List of Signature configurations which are used to attempt validation.
-
getEncryptionConfigurations
public java.util.List<EncryptionConfiguration> getEncryptionConfigurations()
- Returns:
- List of Encryption configurations which are used to attempt validation.
-
getGenericJwtClaimsValidators
public java.util.List<GenericJwtClaimsValidator> getGenericJwtClaimsValidators()
- Returns:
- Generic JWT Claims validators which should be used to validate any JWT.
-
-