jose4j:n etä JWK-lataukset HTTP-välityspalvelimen kautta
Liitä välityspalvelimen tunteva Get-instanssi HttpsJwksiin ja pidä määritetty avainjoukon instanssi sen välimuistia ja myöhempiä päivityksiä varten.
jose4j:n etäavainjoukon lataajalla on oma HTTP-nouto-objektinsa. Määritä tämä objekti, kun sovellus voi kutsua API:a mutta ei voi ladata myöntäjän JSON Web Keys -avaimia.
jose4j 0.9.6:n API tarjoaa Get.setHttpProxy- ja HttpsJwks.setSimpleHttpGet -metodit:
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);Käytä tätä määritettyä jwks-objektia sovelluksen avainten ratkaisussa. Sen luominen olemassa olevan ratkaisijan viereen ei muuta ratkaisijan toista instanssia.
Get käyttää URL:ää ja HttpsURLConnectionia. Eksplisiittinen Proxy välitetään URL.openConnection(Proxy) -metodille; tämä rajaa reitin tähän lataajaan sen sijaan, että vaadittaisiin uusi koko JVM:n välityspalvelinkäytäntö. Välityspalvelimen todennus on tarvittaessa erillinen siirtokysymys. Hyväksytty julkisesti saavutettava myöntäjän URL voi käyttää HTTP-osoitetta HTTP-välityspalvelinluettelosta, kun julkiset välittäjät sallitaan eikä välityspalvelintiliä ole määritetty.
HttpsJwks välimuistittaa avaimet instanssikohtaisesti välimuistiotsakkeiden ja oletusvälimuistin keston asetuksen perusteella. Pidä instanssi, jotta saat tämän hyödyn. Jo välimuistissa oleva avain voi antaa validoinnin jatkua ilman verkkoa, kun taas myöhempi nouto tai päivitys riippuu edelleen määritetystä reitistä.
Tämä määrittää avainten noudon. Tunnuksen validointi tarvitsee edelleen sovelluksen tavallisen allekirjoitus-, myöntäjä-, yleisö- ja muun validointikäytännön; pelkkä JSON-avainjoukon hankkiminen ei suorita näitä tarkistuksia.