jose4j távoli JWK-letöltések HTTP-proxyn keresztül
Csatlakoztasson egy proxyképes Get-példányt a HttpsJwks-hez, és tartsa meg a beállított kulcskészlet-példányt a gyorsítótárához és a későbbi frissítésekhez.
A jose4j távoli kulcskészlet-betöltőjének saját HTTP-lekérdező objektuma van. Akkor állítsa be ezt az objektumot, amikor az alkalmazás tud API-t hívni, de nem tudja letölteni a kibocsátó JSON Web Keys-eit.
A jose4j 0.9.6 API-ja a Get.setHttpProxy és a HttpsJwks.setSimpleHttpGet metódust kínálja:
org.jose4j.http.Get downloader = new org.jose4j.http.Get();
downloader.setHttpProxy(new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080)));
downloader.setConnectTimeout(5000);
downloader.setReadTimeout(15000);
org.jose4j.jwk.HttpsJwks jwks = new org.jose4j.jwk.HttpsJwks(
"https://issuer.example/keys");
jwks.setSimpleHttpGet(downloader);Ezt a beállított jwks objektumot használja az alkalmazás kulcsfeloldási elrendezésében. Egy meglévő feloldó mellé létrehozva nem változik meg a feloldó másik példánya.
A Get URL-t és HttpsURLConnectiont használ. Az explicit Proxy átadódik a URL.openConnection(Proxy) metódusnak; ez az útvonalat erre a betöltőre korlátozza, ahelyett hogy új, az egész JVM-re kiterjedő proxyházirendet igényelne. A proxyhitelesítés, ha szükséges, további átviteli kérdés. Egy jóváhagyott, nyilvánosan elérhető kibocsátó URL HTTP-címet használhat a HTTP-proxylistából, ha a nyilvános közvetítők engedélyezettek, és nincs beállítva proxyfiók.
A HttpsJwks példányonként gyorsítótárazza a kulcsokat, a gyorsítótár-fejlécek és az alapértelmezett gyorsítótár-időtartam beállítása alapján. Tartsa meg a példányt, hogy élvezhesse ezt az előnyt. Egy már gyorsítótárazott kulcs lehetővé teheti az érvényesítés folytatását hálózat használata nélkül, míg egy későbbi lekérés vagy frissítés továbbra is a beállított útvonaltól függ.
Ez a kulcslekérést állítja be. A token érvényesítéséhez továbbra is szükség van az alkalmazás szokásos aláírás-, kibocsátó-, célközönség- és egyéb érvényesítési házirendjére; egy JSON-kulcskészlet megszerzése önmagában nem végzi el ezeket az ellenőrzéseket.