jose4j:s inläsare för fjärrnyckeluppsättningar har ett eget HTTP-hämtningsobjekt. Konfigurera det objektet när programmet kan anropa ett API men inte kan ladda ned utgivarens JSON Web Keys.

API:t i jose4j 0.9.6 exponerar Get.setHttpProxy och 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);

Använd det här konfigurerade jwks-objektet i programmets nyckelupplösning. Att skapa det bredvid en befintlig resolver ändrar inte resolverens andra instans.

Get använder URL och HttpsURLConnection. Den uttryckliga Proxy:n skickas till URL.openConnection(Proxy); det begränsar vägen till den här inläsaren i stället för att kräva en ny JVM-omfattande proxyprincip. Proxyautentisering är, om den behövs, en extra transportfråga. En godkänd offentligt nåbar utgivar-URL kan använda en HTTP-adress från HTTP-proxylistan när offentliga mellanhänder tillåts och inget proxykonto är konfigurerat.

HttpsJwks cachar nycklar per instans, baserat på cache-huvuden och inställningen för standardcachelängd. Behåll instansen för att få den fördelen. En redan cachad nyckel kan låta valideringen fortsätta utan att använda nätverket, medan en senare hämtning eller uppdatering fortfarande beror på den konfigurerade vägen.

Detta konfigurerar nyckelhämtning. Tokenvalidering behöver fortfarande programmets vanliga princip för signatur, utgivare, målgrupp och andra kontroller; att enbart hämta en JSON-nyckeluppsättning utför inte dessa kontroller.

Relaterade artiklar