Download JWKS tramite proxy per il decoder JWT reattivo di Spring
Iniettare il client in NimbusReactiveJwtDecoder e mantenere i controlli esistenti su emittente, audience e altri token quando lo si collega al server delle risorse.
var transport = reactor.netty.http.client.HttpClient.create()
.proxy(spec -> spec
.type(reactor.netty.transport.ProxyProvider.Proxy.HTTP)
.host("proxy.example")
.port(8080));
var webClient = org.springframework.web.reactive.function.client.WebClient
.builder()
.clientConnector(new org.springframework.http.client.reactive
.ReactorClientHttpConnector(transport))
.build();
var decoder = org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder
.withJwkSetUri(jwkSetUri)
.webClient(webClient)
.build();
decoder.setJwtValidator(org.springframework.security.oauth2.jwt.JwtValidators
.createDefaultWithIssuer(issuer));Usare i valori attendibili jwkSetUri/issuer e installare questo decoder tramite il bean ReactiveJwtDecoder effettivo o una configurazione esplicita del server delle risorse. Crearlo accanto a un decoder attivo invariato non modifica il recupero delle chiavi. Se l'URL JWKS attendibile è pubblico e sono ammessi intermediari pubblici, la lista di proxy HTTP fornisce candidati per host e porta del trasporto senza account.
Il validatore mostrato conserva i controlli temporali predefiniti e la convalida dell'emittente. Conservare i requisiti di audience e tutti i validatori aggiuntivi dell'applicazione quando si sostituisce il decoder.
Un URI di chiave noto aggira la discovery per individuarla. Se un altro componente esegue ancora discovery o acquisizione di token, configurare separatamente la rotta di quel client.
Questo copre la verifica dei JWT reattivi sul server delle risorse. Il server delle risorse Servlet, l'accesso OAuth2 e i client delle API aziendali hanno altri punti di aggancio; conservare l'URL della chiave non riuscita e la fase con l'indagine.