jose4j'nin uzak anahtar kümesi yükleyicisinin kendi HTTP alma nesnesi vardır. Uygulama bir API'yi çağırabiliyor ancak verenin JSON Web Keys'ini indiremiyorsa bu nesneyi yapılandırın.

jose4j 0.9.6 API'si Get.setHttpProxy ve HttpsJwks.setSimpleHttpGet sunar:

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);

Bu yapılandırılmış jwks nesnesini uygulamanın anahtar çözümleme düzeninde kullanın. Mevcut bir çözümleyicinin yanında oluşturmak, çözümleyicinin diğer örneğini değiştirmez.

Get, URL ve HttpsURLConnection kullanır. Açık Proxy URL.openConnection(Proxy) yöntemine aktarılır; bu, tüm JVM için yeni bir proxy ilkesi gerektirmek yerine rotayı bu yükleyiciyle sınırlar. Proxy kimlik doğrulaması gerekliyse bu ek bir taşıma konusudur. Onaylanmış ve herkese açık erişilebilir bir veren URL'si, genel aracıların izin verildiği ve proxy hesabının yapılandırılmadığı durumlarda HTTP proxy listesinden bir HTTP adresi kullanabilir.

HttpsJwks, anahtarları önbellek başlıklarına ve varsayılan önbellek süresi ayarına göre örnek başına önbelleğe alır. Bu avantajdan yararlanmak için örneği elinizde tutun. Zaten önbelleğe alınmış bir anahtar, doğrulamanın ağ kullanmadan sürmesini sağlayabilirken, daha sonraki bir alma veya yenileme yine de yapılandırılmış rotaya bağlıdır.

Bu, anahtar almayı yapılandırır. Belirteç doğrulaması yine de uygulamanın olağan imza, veren, hedef kitle ve diğer doğrulama ilkesini gerektirir; yalnızca bir JSON anahtar kümesi edinmek bu denetimleri yapmaz.

İlgili makaleler