jose4j: fjargoymsla av JWK gjøgnum HTTP-proxy
Fest eina proxykenda Get-innstansu til HttpsJwks og hald tí samansetta lyklasetts-innstansuni til cache og seinni dagføringar.
Fjarlyklasetts-innlesarin hjá jose4j hevur sín egna HTTP-heinta lut. Set henda lutin, tá ið forritið kann rópa eitt API, men ikki kann heinta JSON Web Keys hjá útgevaranum.
API-ið hjá jose4j 0.9.6 bjóðar 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);Brúka henda samansetta jwks-lutin í lyklaupploysingaruppsetingini hjá forritinum. At gera hann við síðuna av einum verandi upploysara broytir ikki hina innstansuna hjá upploysaranum.
Get brúkar URL og HttpsURLConnection. Tann greiði Proxy verður sendur til URL.openConnection(Proxy); hetta avmarkar leiðina til hendan innlesaran í staðin fyri at krevja eina nýggja proxy-stevnu fyri alt JVM. Proxy-innritan er, um neyðugt, ein eyka flutningsspurningur. Ein góðkend almenn tøkt útgevaraslóð kann brúka eina HTTP-adressu úr HTTP-proxylistanum, tá ið almennir millumgongufólk eru loyvd og eingin proxy-konto er sett.
HttpsJwks cachar lyklar fyri hvørja innstansu, grundað á cache-høvd og standard-cache-tíðarinnstillinguna. Hald innstansuna fyri at fáa henda fyrimunin. Ein longu cachetur lykil kann lata váttanina halda fram uttan at brúka netið, meðan seinni heinta ella dagføring framvegis er treytað av tí samansettu leiðini.
Hetta setur lyklaheinta. Token-váttanin krevur framvegis vanligu váttanarstevnuna hjá forritinum fyri undirskrift, útgevara, áhoyrarar og aðrar eftirlitsroyndir; at fáa eitt JSON-lyklasett eitt nú ger ikki hesar royndirnar.