jose4j ના દૂરસ્થ JWK ડાઉનલોડ્સ HTTP પ્રોક્સી દ્વારા
પ્રોક્સી-જાગૃત Get ઇન્સ્ટન્સને HttpsJwks સાથે જોડો અને તેના કેશ તથા પછીના રિફ્રેશ માટે ગોઠવેલા કી-સેટ ઇન્સ્ટન્સને વાપરતા રાખો.
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 કી-સેટ મેળવવાથી તે ચકાસણીઓ થતી નથી.