הורדות JWK מרוחקות של jose4j דרך פרוקסי HTTP
חברו מופע Get מודע לפרוקסי אל HttpsJwks והשאירו את מופע מערך המפתחות המוגדר לשימוש עבור המטמון והרענונים המאוחרים שלו.
לטוען מערך המפתחות המרוחק של jose4j יש אובייקט אחזור HTTP משלו. הגדירו את האובייקט הזה כאשר היישום יכול לקרוא ל-API אך אינו יכול להוריד את ה-JSON Web Keys של המנפיק.
ה-API של jose4j 0.9.6 חושף את 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 לבדה אינה מבצעת את הבדיקות האלה.