Closed
Description
Expected Behavior
X509CertificateThumbprintValidator should be public and without final
OR it should expose some way to set custom Supplier<X509Certificate>
Current Behavior
Currently, X509CertificateThumbprintValidator
is built with the DefaultX509CertificateSupplier
. This is not configurable because:
X509CertificateThumbprintValidator
is a default visibility with final classJwtValidators#createDefaultWithValidators
method doesn't really help, because we can't create our own customizedX509CertificateThumbprintValidator
because as I mentioned in # 1, it is final class with default visibility- It doesn't really use JWKs URI either that could have been passed by the other parameter when building NimbusJwtDecoder
- Only way is through
jakarta.servlet.request.X509Certificate
request attribute but this isn't documented anywhere
Context
The token I'm decoding has cnf
claim and since I've upgraded to Spring Boot 3 (spring security 6), it's broken due to new X509CertificateThumbprintValidator
in Spring Security 6. It seems like I can work around it with jakarta.servlet.request.X509Certificate
request attribute but ideally it should use JWKs URI that we pass in as part of building NimbusJwtValidator