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 ਕੀ-ਸੈੱਟ ਪ੍ਰਾਪਤ ਕਰਨਾ ਉਹ ਜਾਂਚਾਂ ਨਹੀਂ ਕਰਦਾ।