Mga pag-download ng JWKS sa pamamagitan ng proxy para sa reactive JWT decoder ng Spring
I-inject ang client sa NimbusReactiveJwtDecoder at panatilihin ang umiiral na mga pagsusuri ng issuer, audience at iba pang token kapag ikinonekta ito sa resource server.
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));Gamitin ang pinagkakatiwalaang jwkSetUri/issuer na halaga at i-install ang decoder na ito sa pamamagitan ng aktwal na ReactiveJwtDecoder bean o tahasang configuration ng resource server. Ang paggawa nito sa tabi ng hindi nabagong aktibong decoder ay hindi nagbabago sa pagkuha ng mga key. Kung ang pinagkakatiwalaang JWKS URL ay pampubliko at pinapayagan ang mga pampublikong tagapamagitan, ang listahan ng HTTP proxy ay nagbibigay ng mga kandidato para sa host at port ng transportasyong walang account.
Pinapanatili ng ipinakitang validator ang mga default na pagsusuri ng oras at pagpapatunay ng issuer. Panatilihin ang mga kinakailangan sa audience at lahat ng karagdagang validator ng application kapag pinapalitan ang decoder.
Ang kilalang key URI ay lumalampas sa discovery upang hanapin ito. Kung may ibang component na gumagawa pa rin ng discovery o pagkuha ng token, i-configure nang hiwalay ang ruta ng client na iyon.
Saklaw nito ang pagpapatunay ng reactive JWT sa resource server. Ang Servlet resource server, pag-login sa OAuth2 at mga business API client ay may ibang hook; itago ang nabigong key URL at yugto kasama ng imbestigasyon.