Учитавач удаљеног скупа кључева у 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 скупа кључева не обавља те провере.

Повезани чланци