Shkarkimet në distancë të JWK-ve të jose4j përmes një proxy HTTP
Lidhni një instancë Get që njeh proxy-n me HttpsJwks dhe mbani instancën e konfiguruar të grupit të çelësave për cache-in dhe rifreskimet e mëvonshme.
Ngarkuesi i grupeve të çelësave në distancë i jose4j ka objektin e vet të marrjes HTTP. Konfiguroni atë objekt kur aplikacioni mund të thërrasë një API, por nuk mund të shkarkojë JSON Web Keys të lëshuesit.
API-ja e jose4j 0.9.6 ekspozon Get.setHttpProxy dhe 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);Përdorni këtë objekt jwks të konfiguruar në skemën e zgjidhjes së çelësave të aplikacionit. Krijimi i tij pranë një zgjidhësi ekzistues nuk ndryshon instancën tjetër të atij zgjidhësi.
Get përdor URL dhe HttpsURLConnection. Proxy-i i qartë i kalon URL.openConnection(Proxy); kjo e kufizon rrugën te ky ngarkues, në vend që të kërkojë një politikë të re proxy për të gjithë JVM-në. Vërtetimi i proxy-t, nëse kërkohet, është një çështje shtesë transporti. Një URL e lëshuesit e miratuar dhe publikisht e arritshme mund të përdorë një adresë HTTP nga lista e proxy-ve HTTP kur ndërmjetësit publikë lejohen dhe nuk është konfiguruar asnjë llogari proxy.
HttpsJwks i ruan çelësat në cache për çdo instancë, bazuar në titujt e cache-it dhe cilësimin e kohëzgjatjes së paracaktuar. Mbani instancën për të përfituar nga ky avantazh. Një çelës tashmë në cache mund të lejojë vërtetimin të vazhdojë pa përdorur rrjetin, ndërsa një marrje ose rifreskim i mëvonshëm varet ende nga rruga e konfiguruar.
Kjo konfiguron marrjen e çelësave. Vërtetimi i token-it ka ende nevojë për politikën normale të aplikacionit për nënshkrim, lëshues, audiencë dhe kontrolle të tjera; marrja e një grupi çelësash JSON vetëm nuk i kryen ato kontrolle.