بارگذار مجموعه کلید راه‌دور 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 آن بررسی‌ها را انجام نمی‌دهد.

مقالات مرتبط