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 കീ-സെറ്റ് മാത്രം നേടുന്നത് ആ പരിശോധനകൾ നടത്തുന്നില്ല.

അനുബന്ധ ലേഖനങ്ങൾ