Příchozí bearer požadavek může dorazit na server prostředků, zatímco ověření JWT selže při odchozím stahování JWK. Nakonfigurujte HTTP klienta, který tento dekodér používá:

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));

Použijte skutečné jwkSetUri a issuer aplikace a nainstalujte tento dekodér do skutečné konfigurace serveru prostředků. Příklad používá neautentizované HTTP proxy s dekodérem Nimbus ve stylu servletu. Pro veřejnou adresu JWK na povolené trase veřejné proxy nabízí seznam HTTP proxy kandidátní hodnoty hostitele a portu.

Validátor issuer v příkladu nenahrazuje povinné kontroly audience ani jiné kontroly aplikace. Při nahrazení automaticky konfigurovaného dekodéru je zachovejte; změna trasy stahování klíče neurčuje, které tokeny má aplikace přijímat.

Reaktivní dekodér používá jiné rozhraní. Jiní klienti pro zjišťování issuer nebo získávání tokenů si rovněž zachovávají vlastní konfiguraci přenosu.

Uložené klíče v mezipaměti mohou umožnit úspěšné ověření bez nového stahování. Při hodnocení trasy uchovávejte adresu URL neúspěšného klíče a fázi obnovy nebo inicializace.

Související články