JWKS-downloads via proxy til Springs reaktive JWT-dekoder
Indsæt klienten i NimbusReactiveJwtDecoder, og bevar de eksisterende kontroller af issuer, audience og andre tokens, når den kobles til ressursserveren.
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));Brug de betroede jwkSetUri/issuer-værdier, og installer denne dekoder via den faktiske ReactiveJwtDecoder-bean eller en eksplicit konfiguration af ressursserveren. At oprette den ved siden af en uændret aktiv dekoder ændrer ikke hentningen af nøgler. Hvis den betroede JWKS-URL er offentlig, og offentlige mellemled er tilladt, giver HTTP-proxylisten kandidater til transportens host og port uden konto.
Den viste validator bevarer standardtidskontrollerne og valideringen af issuer. Behold audience-kravene og alle ekstra applikationsvalidatorer, når du udskifter dekoderen.
En kendt nøgle-URI omgår discovery ved at lokalisere den. Hvis en anden komponent stadig udfører discovery eller tokenanskaffelse, skal du konfigurere den klients rute separat.
Dette dækker reaktiv JWT-verifikation på ressursserveren. Servlet-ressursserveren, OAuth2-login og forretnings-API-klienter har andre hooks; gem den mislykkede nøgle-URL og stadiet sammen med undersøgelsen.