Class NimbusReactiveJwtDecoder
java.lang.Object
org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder
- All Implemented Interfaces:
ReactiveJwtDecoder
An implementation of a
ReactiveJwtDecoder that "decodes" a JSON Web
Token (JWT) and additionally verifies it's digital signature if the JWT is a JSON Web
Signature (JWS).
NOTE: This implementation uses the Nimbus JOSE + JWT SDK internally.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classA builder for creatingNimbusReactiveJwtDecoderinstances based on a JWK Set uri.static final classA builder for creatingNimbusReactiveJwtDecoderinstances.static final classA builder for creatingNimbusReactiveJwtDecoderinstances based on a public key.static final classA builder for creatingNimbusReactiveJwtDecoderinstances based on aSecretKey. -
Constructor Summary
ConstructorsConstructorDescriptionNimbusReactiveJwtDecoder(String jwkSetUrl) Constructs aNimbusReactiveJwtDecoderusing the provided parameters.NimbusReactiveJwtDecoder(RSAPublicKey publicKey) Constructs aNimbusReactiveJwtDecoderusing the provided parameters.NimbusReactiveJwtDecoder(org.springframework.core.convert.converter.Converter<com.nimbusds.jwt.JWT, reactor.core.publisher.Mono<com.nimbusds.jwt.JWTClaimsSet>> jwtProcessor) Constructs aNimbusReactiveJwtDecoderusing the provided parameters. -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<Jwt>Decodes the JWT from it's compact claims representation format and returns aJwt.voidsetClaimSetConverter(org.springframework.core.convert.converter.Converter<Map<String, Object>, Map<String, Object>> claimSetConverter) Use the followingConverterfor manipulating the JWT's claim setvoidsetJwtValidator(OAuth2TokenValidator<Jwt> jwtValidator) Use the providedOAuth2TokenValidatorto validate incomingJwts.withJwkSetUri(String jwkSetUri) Use the given JWK Set uri to validate JWTs.withJwkSource(Function<com.nimbusds.jwt.SignedJWT, reactor.core.publisher.Flux<com.nimbusds.jose.jwk.JWK>> source) Use the givenFunctionto validate JWTsUse the given public key to validate JWTswithSecretKey(SecretKey secretKey) Use the givenSecretKeyto validate the MAC on a JSON Web Signature (JWS).
-
Constructor Details
-
NimbusReactiveJwtDecoder
Constructs aNimbusReactiveJwtDecoderusing the provided parameters.- Parameters:
jwkSetUrl- the JSON Web Key (JWK) SetURL
-
NimbusReactiveJwtDecoder
Constructs aNimbusReactiveJwtDecoderusing the provided parameters.- Parameters:
publicKey- theRSAPublicKeyused to verify the signature- Since:
- 5.2
-
NimbusReactiveJwtDecoder
public NimbusReactiveJwtDecoder(org.springframework.core.convert.converter.Converter<com.nimbusds.jwt.JWT, reactor.core.publisher.Mono<com.nimbusds.jwt.JWTClaimsSet>> jwtProcessor) Constructs aNimbusReactiveJwtDecoderusing the provided parameters.- Parameters:
jwtProcessor- theConverterused to process and verify the signed Jwt and return the Jwt Claim Set- Since:
- 5.2
-
-
Method Details
-
setJwtValidator
Use the providedOAuth2TokenValidatorto validate incomingJwts.- Parameters:
jwtValidator- theOAuth2TokenValidatorto use
-
setClaimSetConverter
public void setClaimSetConverter(org.springframework.core.convert.converter.Converter<Map<String, Object>, Map<String, Object>> claimSetConverter) Use the followingConverterfor manipulating the JWT's claim set- Parameters:
claimSetConverter- theConverterto use
-
decode
Description copied from interface:ReactiveJwtDecoderDecodes the JWT from it's compact claims representation format and returns aJwt.- Specified by:
decodein interfaceReactiveJwtDecoder- Parameters:
token- the JWT value- Returns:
- a
Jwt - Throws:
JwtException- if an error occurs while attempting to decode the JWT
-
withJwkSetUri
public static NimbusReactiveJwtDecoder.JwkSetUriReactiveJwtDecoderBuilder withJwkSetUri(String jwkSetUri) Use the given JWK Set uri to validate JWTs.- Parameters:
jwkSetUri- the JWK Set uri to use- Returns:
- a
NimbusReactiveJwtDecoder.JwkSetUriReactiveJwtDecoderBuilderfor further configurations - Since:
- 5.2
-
withPublicKey
public static NimbusReactiveJwtDecoder.PublicKeyReactiveJwtDecoderBuilder withPublicKey(RSAPublicKey key) Use the given public key to validate JWTs- Parameters:
key- the public key to use- Returns:
- a
NimbusReactiveJwtDecoder.PublicKeyReactiveJwtDecoderBuilderfor further configurations - Since:
- 5.2
-
withSecretKey
public static NimbusReactiveJwtDecoder.SecretKeyReactiveJwtDecoderBuilder withSecretKey(SecretKey secretKey) Use the givenSecretKeyto validate the MAC on a JSON Web Signature (JWS).- Parameters:
secretKey- theSecretKeyused to validate the MAC- Returns:
- a
NimbusReactiveJwtDecoder.SecretKeyReactiveJwtDecoderBuilderfor further configurations - Since:
- 5.2
-
withJwkSource
public static NimbusReactiveJwtDecoder.JwkSourceReactiveJwtDecoderBuilder withJwkSource(Function<com.nimbusds.jwt.SignedJWT, reactor.core.publisher.Flux<com.nimbusds.jose.jwk.JWK>> source) Use the givenFunctionto validate JWTs- Parameters:
source- theFunction- Returns:
- a
NimbusReactiveJwtDecoder.JwkSourceReactiveJwtDecoderBuilderfor further configurations - Since:
- 5.2
-