El carregador remot de conjunts de claus de jose4j té el seu propi objecte de recuperació HTTP. Configureu aquest objecte quan l'aplicació pot cridar una API però no pot descarregar les JSON Web Keys de l'emissor.

L'API de jose4j 0.9.6 exposa Get.setHttpProxy i 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);

Utilitzeu aquest objecte jwks configurat en l'esquema de resolució de claus de l'aplicació. Crear-lo al costat d'un resolutor existent no canvia l'altra instància del resolutor.

Get utilitza URL i HttpsURLConnection. El Proxy explícit es passa a URL.openConnection(Proxy); això limita la ruta a aquest carregador en lloc d'exigir una nova política de proxy per a tota la JVM. L'autenticació del proxy, si cal, és una qüestió de transport addicional. Un URL d'emissor aprovat i accessible públicament pot utilitzar una adreça HTTP de la llista de proxys HTTP quan es permeten intermediaris públics i no hi ha cap compte de proxy configurat.

HttpsJwks desa les claus a la memòria cau per instància, segons les capçaleres de memòria cau i el paràmetre de durada per defecte. Manteniu la instància per obtenir aquest benefici. Una clau ja desada pot permetre que la validació continuï sense fer servir la xarxa, mentre que una recuperació o actualització posterior encara depèn de la ruta configurada.

Això configura la recuperació de claus. La validació del testimoni encara necessita la política habitual de l'aplicació per a signatura, emissor, audiència i altres comprovacions; obtenir un conjunt de claus JSON per si sol no fa aquestes comprovacions.

Articles relacionats