Učitavač udaljenog skupa ključeva u jose4j ima vlastiti HTTP objekt za dohvat. Konfigurirajte taj objekt kada aplikacija može pozvati API, ali ne može preuzeti 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 konfigurirani jwks objekt u rasporedu za razrješavanje ključeva aplikacije. Njegovo stvaranje pored postojećeg resolvera ne mijenja drugu instancu tog resolvera.

Get koristi URL i HttpsURLConnection. Eksplicitni Proxy prosljeđuje se u URL.openConnection(Proxy); to ograničava rutu na ovaj učitavač umjesto da zahtijeva novu proxy politiku na razini cijele JVM. Autentifikacija proxyja, ako je potrebna, dodatna je transportna briga. Odobreni javno dostupni URL izdavaoca može koristiti HTTP adresu iz popisa HTTP proxyja kada su javni posrednici dopušteni i proxy račun nije konfiguriran.

HttpsJwks kešira ključeve po instanci, na temelju keš zaglavlja i postavke zadanog trajanja keša. Zadržite instancu da biste ostvarili tu korist. Već keširani ključ može omogućiti da se provjera nastavi bez mrežnog pristupa, dok kasniji dohvat ili osvježavanje i dalje ovisi o konfiguriranoj ruti.

Ovo konfigurira dohvat ključeva. Provjera tokena i dalje zahtijeva uobičajenu politiku aplikacije za potpis, izdavaoca, publiku i druge provjere; samo dobivanje JSON skupa ključeva ne obavlja te provjere.

Povezani članci