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 कुंजी-समुच्चय प्राप्त करना वे जाँचें नहीं करता।

संबंधित लेख