Spring NimbusJwtDecoder: a JWK-készlet letöltésének proxyzása
Adjon a servlet-dekódernek proxy-tudatos RestTemplate-et, és az automatikus konfiguráció cseréjekor tartsa meg az issuer-, audience- és további token-érvényesítőket.
Egy bejövő bearer kérés elérheti az erőforrás-kiszolgálót, miközben a JWT-ellenőrzés egy kimenő JWK-letöltésnél meghiúsul. Konfigurálja a dekóder által használt HTTP-klienst:
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));Használja az alkalmazás valódi jwkSetUri és issuer értékét, és telepítse ezt a dekódert a tényleges erőforrás-kiszolgáló-konfigurációba. A példa hitelesítés nélküli HTTP-proxyt használ servlet stílusú Nimbus-dekóderrel. Egy engedélyezett nyilvános proxy-útvonalon lévő nyilvános JWK URL-hez a HTTP-proxy lista jelölt gazdagép- és portértékeket kínál.
A példa issuer-érvényesítője nem helyettesíti a kötelező audience-ellenőrzéseket vagy az alkalmazás egyéb ellenőrzéseit. Tartsa meg ezeket egy automatikusan konfigurált dekóder cseréjekor; a kulcsletöltési útvonal megváltoztatása nem határozza meg, mely tokeneket fogadjon el az alkalmazás.
A reaktív dekóder más felületet használ. Más issuer-felderítő vagy tokenbeszerző kliensek is megtartják saját átviteli konfigurációjukat.
A gyorsítótárazott kulcsok új letöltés nélkül is sikeressé tehetik az ellenőrzést. Az útvonal értékelésekor őrizze meg a sikertelen kulcs URL-jét és a frissítési vagy inicializálási szakaszt.