Отдалечени изтегляния на 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 ключове не извършва тези проверки.