Učitavač udaljenog skupa ključeva u jose4j ima sopstveni HTTP objekat za preuzimanje. Konfigurišite taj objekat kada aplikacija može da pozove API, ali ne može da preuzme JSON Web Keys izdavaoca.

API jose4j 0.9.6 nudi Get.setHttpProxy i HttpsJwks.setSimpleHttpGet:

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

Koristite ovaj konfigurisani jwks objekat u rasporedu za razrešavanje ključeva aplikacije. Njegovo stvaranje pored postojećeg resolvera ne menja drugu instancu tog resolvera.

Get koristi URL i HttpsURLConnection. Eksplicitni Proxy se prosleđuje u URL.openConnection(Proxy); to ograničava rutu na ovaj učitavač umesto da zahteva novu proxy politiku na nivou cele JVM. Autentifikacija proxyja, ako je potrebna, dodatna je transportna stvar. Odobreni javno dostupni URL izdavaoca može da koristi HTTP adresu iz liste HTTP proxyja kada su javni posrednici dozvoljeni i proxy nalog nije konfigurisan.

HttpsJwks kešira ključeve po instanci, na osnovu keš zaglavlja i podešavanja podrazumevanog trajanja keša. Zadržite instancu da biste ostvarili tu korist. Već keširani ključ može da omogući da se provera nastavi bez korišćenja mreže, dok kasnije preuzimanje ili osvežavanje i dalje zavisi od konfigurisane rute.

Ovo konfiguriše preuzimanje ključeva. Provera tokena i dalje zahteva uobičajenu politiku aplikacije za potpis, izdavaoca, publiku i druge provere; samo dobijanje JSON skupa ključeva ne obavlja te provere.

Povezani članci