jose4j کی دور دراز JWK ڈاؤن لوڈز HTTP پراکسی کے ذریعے
پراکسی سے واقف Get انسٹینس کو HttpsJwks سے منسلک کریں اور کنفیگر شدہ کلید-سیٹ انسٹینس کو اس کے کیشے اور بعد کی تازہ کاریوں کے لیے استعمال میں رکھیں۔
jose4j کے دور دراز کلید-سیٹ لوڈر کا اپنا HTTP حصولی آبجیکٹ ہے۔ اس آبجیکٹ کو کنفیگر کریں جب ایپلیکیشن API کال کر سکتی ہے مگر جاری کنندہ کی JSON Web Keys ڈاؤن لوڈ نہیں کر سکتی۔
jose4j 0.9.6 کا API Get.setHttpProxy اور 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);اس کنفیگر شدہ jwks آبجیکٹ کو ایپلیکیشن کی کلید-حل ترتیب میں استعمال کریں۔ موجودہ ریزولور کے پاس اسے بنانا ریزولور کی دوسری انسٹینس کو تبدیل نہیں کرتا۔
Get URL اور HttpsURLConnection استعمال کرتا ہے۔ واضح Proxy URL.openConnection(Proxy) کو دیا جاتا ہے؛ یہ پورے JVM کے لیے نئی پراکسی پالیسی کے بجائے راستہ اسی لوڈر تک محدود کرتا ہے۔ پراکسی توثیق، اگر درکار ہو، ایک اضافی ٹرانسپورٹ معاملہ ہے۔ منظور شدہ عوامی طور پر قابل رسائی جاری کنندہ URL، جب عوامی واسطے کاروں کی اجازت ہو اور کوئی پراکسی اکاؤنٹ کنفیگر نہ ہو، HTTP پراکسی فہرست سے HTTP پتہ استعمال کر سکتا ہے۔
HttpsJwks کیشے ہیڈرز اور اپنی طے شدہ کیشے مدت کی سیٹنگ کی بنیاد پر ہر انسٹینس کے لیے کلیدیں کیشے کرتا ہے۔ یہ فائدہ حاصل کرنے کے لیے انسٹینس رکھیں۔ پہلے سے کیشے شدہ کلید تصدیق کو نیٹ ورک استعمال کیے بغیر جاری رکھنے دے سکتی ہے، جبکہ بعد کی حصولی یا تازہ کاری اب بھی کنفیگر شدہ راستے پر منحصر ہے۔
یہ کلید حصولی کو کنفیگر کرتا ہے۔ ٹوکن کی تصدیق کو اب بھی ایپلیکیشن کی معمول کی دستخط، جاری کنندہ، سامعین اور دیگر تصدیقی پالیسی درکار ہے؛ صرف JSON کلید-سیٹ حاصل کرنا وہ جانچیں نہیں کرتا۔