Pemuat set kunci jauh jose4j mempunyai objek pengambilan HTTP sendiri. Konfigurasikan objek itu apabila aplikasi boleh memanggil API tetapi tidak boleh memuat turun JSON Web Keys pengeluar.

API jose4j 0.9.6 mendedahkan Get.setHttpProxy dan 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);

Gunakan objek jwks yang dikonfigurasikan ini dalam susunan penyelesaian kunci aplikasi. Menciptanya di sebelah penyelesai sedia ada tidak mengubah instans lain penyelesai itu.

Get menggunakan URL dan HttpsURLConnection. Proxy eksplisit dihantar ke URL.openConnection(Proxy); ini mengehadkan laluan kepada pemuat ini dan bukannya memerlukan dasar proksi baharu untuk seluruh JVM. Pengesahan proksi, jika diperlukan, ialah perkara pengangkutan tambahan. URL pengeluar yang diluluskan dan boleh dicapai secara awam boleh menggunakan alamat HTTP daripada senarai proksi HTTP apabila perantara awam dibenarkan dan tiada akaun proksi dikonfigurasikan.

HttpsJwks menyimpan kunci dalam cache bagi setiap instans, berdasarkan pengepala cache dan tetapan tempoh cache lalainya. Kekalkan instans itu untuk memperoleh faedah tersebut. Kunci yang sudah di-cache boleh membolehkan pengesahan diteruskan tanpa menggunakan rangkaian, manakala pengambilan atau muat semula kemudian masih bergantung pada laluan yang dikonfigurasikan.

Ini mengkonfigurasikan pengambilan kunci. Pengesahan token masih memerlukan dasar pengesahan biasa aplikasi untuk tandatangan, pengeluar, audiens dan pemeriksaan lain; memperoleh set kunci JSON sahaja tidak melakukan pemeriksaan tersebut.

Artikel berkaitan