Lasteren for eksterne nøkkelsett i jose4j har sitt eget HTTP-henteobjekt. Konfigurer dette objektet når applikasjonen kan kalle et API, men ikke kan laste ned utstederens JSON Web Keys.

API-et i jose4j 0.9.6 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);

Bruk dette konfigurerte jwks-objektet i applikasjonens nøkkeloppløsning. Å opprette det ved siden av en eksisterende resolver endrer ikke resolverens andre instans.

Get bruker URL og HttpsURLConnection. Den eksplisitte Proxy-en sendes til URL.openConnection(Proxy); dette begrenser ruten til denne lasteren i stedet for å kreve en ny JVM-dekkende proxy-policy. Proxy-autentisering er, hvis den kreves, et ekstra transportanliggende. En godkjent offentlig tilgjengelig utsteder-URL kan bruke en HTTP-adresse fra HTTP-proxylisten når offentlige mellomledd er tillatt og ingen proxykonto er konfigurert.

HttpsJwks cacher nøkler per instans, basert på cache-hoder og innstillingen for standard cachevarighet. Behold instansen for å få denne fordelen. En allerede bufret nøkkel kan la valideringen fortsette uten å bruke nettverket, mens en senere henting eller oppdatering fortsatt avhenger av den konfigurerte ruten.

Dette konfigurerer nøkkelhenting. Tokenvalidering trenger fortsatt applikasjonens vanlige policy for signatur, utsteder, publikum og andre kontroller; å skaffe et JSON-nøkkelsett alene utfører ikke disse kontrollene.

Relaterte artikler