Descargas de JWKS mediante proxy para o decodificador JWT reactivo de Spring
Inxecte o cliente en NimbusReactiveJwtDecoder e conserve as comprobacións existentes de emisor, audiencia e outros tokens ao conectalo ao servidor de recursos.
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));Use os valores de confianza jwkSetUri/issuer e instale este decodificador mediante o bean real ReactiveJwtDecoder ou unha configuración explícita do servidor de recursos. Crealo xunto a un decodificador activo sen cambios non altera a obtención de claves. Se o URL de JWKS de confianza é público e se permiten intermediarios públicos, a lista de proxies HTTP ofrece candidatos para o host e o porto do transporte sen conta.
O validador mostrado conserva as comprobacións de tempo predeterminadas e a validación do emisor. Manteña os requisitos de audiencia e todos os validadores adicionais da aplicación ao substituír o decodificador.
Un URI de clave coñecido evita o descubrimento para localizala. Se outro compoñente aínda realiza descubrimento ou adquisición de tokens, configure a ruta dese cliente por separado.
Isto cobre a verificación de JWT reactivos no servidor de recursos. O servidor de recursos Servlet, o inicio de sesión OAuth2 e os clientes de API empresariais teñen outros puntos de conexión; conserve o URL de clave fallida e a etapa coa investigación.