Class NimbusJwtDecoder.PublicKeyJwtDecoderBuilder
- Enclosing class:
- NimbusJwtDecoder
NimbusJwtDecoder instances based on a public key.-
Method Summary
Modifier and TypeMethodDescriptionbuild()Build the configuredNimbusJwtDecoder.jwtProcessorCustomizer(Consumer<com.nimbusds.jwt.proc.ConfigurableJWTProcessor<com.nimbusds.jose.proc.SecurityContext>> jwtProcessorCustomizer) Use the givenConsumerto customize theConfigurableJWTProcessorbefore passing it to the buildNimbusJwtDecoder.signatureAlgorithm(SignatureAlgorithm signatureAlgorithm) Use the given signing algorithm.validateType(boolean shouldValidateTypHeader) Whether to use Nimbus's typ header verification.
-
Method Details
-
validateType
Whether to use Nimbus's typ header verification. This istrueby default, however it may change tofalsein a future major release.By turning off this feature,
NimbusJwtDecoderexpects applications to check thetypheader themselves in order to determine what kind of validation is neededThis is done for you when you use
JwtValidatorsto construct a validator.That means that this:
NimbusJwtDecoder jwtDecoder = NimbusJwtDecoder.withIssuerLocation(issuer).build(); jwtDecoder.setJwtValidator(JwtValidators.createDefaultWithIssuer(issuer);Is equivalent to this:
NimbusJwtDecoder jwtDecoder = NimbusJwtDecoder.withIssuerLocation(issuer) .validateType(false) .build(); jwtDecoder.setJwtValidator(JwtValidators.createDefaultWithValidators( new JwtIssuerValidator(issuer), JwtTypeValidator.jwt());The difference is that by setting this to
false, it allows you to provide validation by type, like forat+jwt:NimbusJwtDecoder jwtDecoder = NimbusJwtDecoder.withIssuerLocation(issuer) .validateType(false) .build(); jwtDecoder.setJwtValidator(new MyAtJwtValidator());- Parameters:
shouldValidateTypHeader- whether Nimbus should validate the typ header or not- Returns:
- a
NimbusJwtDecoder.JwkSetUriJwtDecoderBuilderfor further configurations - Since:
- 6.5
-
signatureAlgorithm
public NimbusJwtDecoder.PublicKeyJwtDecoderBuilder signatureAlgorithm(SignatureAlgorithm signatureAlgorithm) Use the given signing algorithm. The value should be one of RS256, RS384, or RS512.- Parameters:
signatureAlgorithm- the algorithm to use- Returns:
- a
NimbusJwtDecoder.PublicKeyJwtDecoderBuilderfor further configurations
-
jwtProcessorCustomizer
public NimbusJwtDecoder.PublicKeyJwtDecoderBuilder jwtProcessorCustomizer(Consumer<com.nimbusds.jwt.proc.ConfigurableJWTProcessor<com.nimbusds.jose.proc.SecurityContext>> jwtProcessorCustomizer) Use the givenConsumerto customize theConfigurableJWTProcessorbefore passing it to the buildNimbusJwtDecoder.- Parameters:
jwtProcessorCustomizer- the callback used to alter the processor- Returns:
- a
NimbusJwtDecoder.PublicKeyJwtDecoderBuilderfor further configurations - Since:
- 5.4
-
build
Build the configuredNimbusJwtDecoder.- Returns:
- the configured
NimbusJwtDecoder
-