jose4j's indlæser til fjernnøglesæt har sit eget HTTP-henteobjekt. Konfigurer dette objekt, når applikationen kan kalde en API, men ikke kan hente udstederens JSON Web Keys.

jose4j 0.9.6-API'en eksponerer Get.setHttpProxy og 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);

Brug dette konfigurerede jwks-objekt i applikationens nøgleopløsning. At oprette det ved siden af en eksisterende resolver ændrer ikke resolverens anden instans.

Get bruger URL og HttpsURLConnection. Den eksplicitte Proxy sendes til URL.openConnection(Proxy); det begrænser ruten til denne indlæser i stedet for at kræve en ny JVM-dækkende proxy-politik. Proxygodkendelse er, hvis den kræves, et ekstra transportanliggende. En godkendt offentligt tilgængelig udsteder-URL kan bruge en HTTP-adresse fra HTTP-proxylisten, når offentlige mellemled er tilladt, og der ikke er konfigureret en proxykonto.

HttpsJwks cacher nøgler pr. instans baseret på cache-headere og indstillingen for standardcachevarighed. Behold instansen for at få den fordel. En allerede cachet nøgle kan lade valideringen fortsætte uden at bruge netværket, mens en senere hentning eller opdatering stadig afhænger af den konfigurerede rute.

Dette konfigurerer nøglehentning. Tokenvalidering kræver stadig applikationens normale politik for signatur, udsteder, målgruppe og andre kontroller; at hente et JSON-nøglesæt alene udfører ikke disse kontroller.

Relaterede artikler