Una petició bearer entrant pot arribar al servidor de recursos mentre la verificació JWT falla en una descàrrega JWK sortint. Configureu el client HTTP que utilitza aquest descodificador:

var factory = new org.springframework.http.client.SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example", 8080)));
var rest = new org.springframework.web.client.RestTemplate(factory);

var decoder = org.springframework.security.oauth2.jwt.NimbusJwtDecoder
    .withJwkSetUri(jwkSetUri)
    .restOperations(rest)
    .build();
decoder.setJwtValidator(
    org.springframework.security.oauth2.jwt.JwtValidators
        .createDefaultWithIssuer(issuer));

Utilitzeu els jwkSetUri i issuer reals de l'aplicació i instal·leu aquest descodificador a la configuració real del servidor de recursos. L'exemple utilitza un proxy HTTP no autenticat amb el descodificador Nimbus d'estil servlet. Per a un URL JWK públic en una ruta de proxy públic permesa, la llista de proxys HTTP ofereix valors candidats d'amfitrió i port.

El validador d'issuer de l'exemple no substitueix les comprovacions d'audience obligatòries ni altres comprovacions de l'aplicació. Conserveu-les en substituir un descodificador configurat automàticament; canviar la ruta de descàrrega de claus no defineix quins testimonis ha d'acceptar l'aplicació.

Un descodificador reactiu utilitza una altra interfície. Altres clients de descoberta d'issuer o d'obtenció de testimonis també mantenen la seva pròpia configuració de transport.

Les claus en memòria cau poden fer que la verificació tingui èxit sense una descàrrega nova. Conserveu l'URL de la clau fallida i l'etapa d'actualització o inicialització en avaluar la ruta.

Articles relacionats