Încărcătorul de seturi de chei la distanță din jose4j are propriul obiect de recuperare HTTP. Configurați acel obiect atunci când aplicația poate apela un API, dar nu poate descărca JSON Web Keys ale emitentului.

API-ul jose4j 0.9.6 expune 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);

Folosiți acest obiect jwks configurat în aranjamentul de rezolvare a cheilor al aplicației. Crearea lui lângă un resolver existent nu modifică cealaltă instanță a resolverului.

Get folosește URL și HttpsURLConnection. Proxy-ul explicit este transmis către URL.openConnection(Proxy); astfel ruta este limitată la acest încărcător în loc să fie necesară o nouă politică de proxy la nivelul întregii JVM. Autentificarea proxy, dacă este necesară, este o chestiune suplimentară de transport. Un URL de emitent aprobat și accesibil public poate folosi o adresă HTTP din lista de proxy-uri HTTP atunci când intermediarii publici sunt permisi și nu este configurat niciun cont de proxy.

HttpsJwks memorează cheile în cache pe instanță, pe baza antetelor de cache și a setării duratei implicite. Păstrați instanța pentru a obține acest beneficiu. O cheie deja memorată în cache poate permite validării să continue fără a folosi rețeaua, în timp ce o recuperare sau o reîmprospătare ulterioară depinde în continuare de ruta configurată.

Aceasta configurează recuperarea cheilor. Validarea tokenului are în continuare nevoie de politica obișnuită a aplicației pentru semnătură, emitent, audiență și alte verificări; obținerea unui set de chei JSON singură nu efectuează aceste verificări.

Articole similare