Oddaljeni prenosi JWK v jose4j prek HTTP posrednika
Povežite primerek Get, ki pozna posrednika, s HttpsJwks in obdržite konfigurirani primerek nabora ključev za njegov predpomnilnik in poznejše osvežitve.
Nalagalnik oddaljenega nabora ključev v jose4j ima svoj lastni objekt za pridobivanje po HTTP. Konfigurirajte ta objekt, ko lahko aplikacija pokliče API, ne more pa prenesti JSON Web Keys izdajatelja.
API jose4j 0.9.6 ponuja Get.setHttpProxy in 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);Uporabite ta konfigurirani objekt jwks v ureditvi razreševanja ključev aplikacije. Njegovo ustvarjanje ob obstoječem razreševalniku ne spremeni drugega primerka tega razreševalnika.
Get uporablja URL in HttpsURLConnection. Izrecni Proxy se posreduje v URL.openConnection(Proxy); to omeji pot na ta nalagalnik, namesto da bi zahtevalo novo posredniško politiko za celotno JVM. Preverjanje pristnosti posrednika je, če je potrebno, dodatna transportna zadeva. Odobren javno dostopen URL izdajatelja lahko uporabi naslov HTTP s seznama posrednikov HTTP, kadar so javni posredniki dovoljeni in ni konfiguriran posredniški račun.
HttpsJwks shranjuje ključe v predpomnilnik za vsak primerek, na podlagi glav predpomnilnika in nastavitve privzetega trajanja predpomnilnika. Obdržite primerek, da pridobite to prednost. Že predpomnjen ključ lahko omogoči, da se preverjanje nadaljuje brez uporabe omrežja, medtem ko je poznejše pridobivanje ali osvežitev še vedno odvisno od konfigurirane poti.
To konfigurira pridobivanje ključev. Preverjanje žetona še vedno potrebuje običajno politiko aplikacije za podpis, izdajatelja, občinstvo in druge preglede; samo pridobitev nabora ključev JSON teh pregledov ne izvede.