jose4j қашықтағы кілттер жиынтығын жүктеушінің өзіндік HTTP алу нысаны бар. Қолданба API-ді шақыра алса да, шығарушының JSON Web Keys кілттерін жүктей алмаса, сол нысанды конфигурациялаңыз.

jose4j 0.9.6 API-і 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 кілттер жиынтығын алу бұл тексерулерді орындамайды.

Қатысты мақалалар