jose4j: eksterne JWK-nedlastingar via ein HTTP-proxy
Kople ein proxybevisst Get-instans til HttpsJwks og hald den konfigurerte nøkkelsett-instansen for cachen og seinare oppdateringar.
Lastaren for eksterne nøkkelsett i jose4j har sitt eige HTTP-henteobjekt. Konfigurer dette objektet når applikasjonen kan kalle eit API, men ikkje kan laste ned JSON Web Keys til utgivaren.
API-et i jose4j 0.9.6 eksponerer Get.setHttpProxy og 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);Bruk dette konfigurerte jwks-objektet i nøkkeloppløysinga til applikasjonen. Å opprette det ved sida av ein eksisterande resolver endrar ikkje den andre instansen til resolvaren.
Get brukar URL og HttpsURLConnection. Den eksplisitte Proxy-en vert send til URL.openConnection(Proxy); dette avgrensar ruta til denne lastaren i staden for å krevje ein ny JVM-dekkjande proxy-policy. Proxy-autentisering er, om ho trengst, eit ekstra transporttilhøve. Ein godkjend offentleg tilgjengeleg utgivar-URL kan bruke ein HTTP-adresse frå HTTP-proxylista når offentlege mellomledd er tillatne og ingen proxykonto er konfigurert.
HttpsJwks cachar nøklar per instans, basert på cache-hovud og innstillinga for standard cachevarigheit. Hald instansen for å få denne fordelen. Ein allereie cachet nøkkel kan la valideringa halde fram utan å bruke nettet, medan ei seinare henting eller oppdatering framleis er avhengig av den konfigurerte ruta.
Dette konfigurerer nøkkelhenting. Tokenvalidering treng framleis den vanlege policyen til applikasjonen for signatur, utgivar, publikum og andre kontrollar; å skaffe eit JSON-nøkkelsett åleine utfører ikkje desse kontrollane.