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 ئاچقۇچ توپلىمىنى ئېلىش بۇ تەكشۈرۈشلەرنى ئىجرا قىلمايدۇ.

مۇناسىۋەتلىك ماقالىلەر