Spring NimbusJwtDecoder: proxy pre sťahovanie sady JWK
Dajte servletovému dekodéru RestTemplate, ktorý pozná proxy, a pri nahradení automatickej konfigurácie zachovajte validátory issuer, audience a ďalšie validátory tokenov.
Prichádzajúca bearer požiadavka môže doraziť na server zdrojov, kým overenie JWT zlyhá pri odchádzajúcom sťahovaní JWK. Nakonfigurujte HTTP klienta, ktorého tento dekodér používa:
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žite skutočné jwkSetUri a issuer aplikácie a nainštalujte tento dekodér do skutočnej konfigurácie servera zdrojov. Príklad používa neautentizované HTTP proxy s dekodérom Nimbus v štýle servlet. Pre verejnú adresu JWK na povolenej trase verejného proxy ponúka zoznam HTTP proxy kandidátske hodnoty hostiteľa a portu.
Validátor issuer v príklade nenahrádza povinné kontroly audience ani iné kontroly aplikácie. Pri nahradení automaticky konfigurovaného dekodéra ich zachovajte; zmena trasy sťahovania kľúča neurčuje, ktoré tokeny má aplikácia prijímať.
Reaktívny dekodér používa iné rozhranie. Iní klienti na zisťovanie issuer alebo získavanie tokenov si tiež zachovávajú vlastnú konfiguráciu prenosu.
Kľúče vo vyrovnávacej pamäti môžu umožniť úspešné overenie bez nového sťahovania. Pri hodnotení trasy uchovajte URL zlyhaného kľúča a fázu obnovy alebo inicializácie.