Java 9+ JarSigner API-ൽ ടൈംസ്റ്റാമ്പ് അഭ്യർത്ഥനകൾക്കുള്ള പ്രോക്സി ക്രമീകരണങ്ങൾ
ആന്തരിക കമാൻഡ് ക്ലാസുകൾക്കു പകരം പ്രോക്സി അഭ്യർത്ഥകൻ, ഹോസ്റ്റ്, പോർട്ട് പരിശോധനകളോടെ Java 9+ ന്റെ പൊതു JarSigner സെറ്റപ്പ് ഉപയോഗിക്കുക.
System.setProperty("http.proxyHost", "proxy.example");
System.setProperty("http.proxyPort", "8080");
java.net.Authenticator.setDefault(new java.net.Authenticator() {
@Override
protected java.net.PasswordAuthentication getPasswordAuthentication() {
if (getRequestorType() == RequestorType.PROXY
&& "proxy.example".equalsIgnoreCase(getRequestingHost())
&& getRequestingPort() == 8080) {
return new java.net.PasswordAuthentication(
proxyUser, proxyPassword.toCharArray());
}
return null;
}
});
var signer = new jdk.security.jarsigner.JarSigner.Builder(signingEntry)
.tsa(java.net.URI.create("http://tsa.example/"))
.build();signingEntry നിലവിലുള്ള KeyStore.PrivateKeyEntry ആണ്. ആപ്ലിക്കേഷന്റെ ക്രെഡൻഷ്യൽ ഉറവിടത്തിൽ നിന്ന് പ്രോക്സി അക്കൗണ്ട് മൂല്യങ്ങൾ നൽകുക, തുടർന്ന് ഈ സൈനർ അതിന്റെ സാധാരണ ZipFile, ഔട്ട്പുട്ട് സ്ട്രീം പ്രവാഹത്തിൽ ഉപയോഗിക്കുക.
അഭ്യർത്ഥക-തരം പ്രവചനം പ്രോക്സി, ലക്ഷ്യ പ്രാമാണീകരണം വേർതിരിച്ചു നിർത്തുന്നു, ലക്ഷ്യത്തിൽ നിന്നുള്ള വെല്ലുവിളിക്ക് പ്രോക്സി പാസ്വേഡ് ലഭിക്കുന്നത് തടയുന്നു; ഹോസ്റ്റും പോർട്ടും ഇടനിലക്കാരനെ പരിമിതപ്പെടുത്തുന്നു.
സിസ്റ്റം പ്രോപ്പർട്ടികളും ഡിഫോൾട്ട് Authenticator-ഉം മുഴുവൻ JVM-നെയും ബാധിക്കുന്നു. സമകാലിക ജോലികൾക്കിടയിൽ അവ മാറ്റുന്നതിനു പകരം ആരംഭത്തിൽ അവയുടെ ആയുസ്സ് നിശ്ചയിക്കുക.
പൊതു jdk.security.jarsigner API sun.security.tools.jarsigner.Main ഉം പഴയ tools.jar ക്രമീകരണങ്ങളും ഒഴിവാക്കുന്നു. ഉദാഹരണം HTTP TSA ഉപയോഗിക്കുന്നു; HTTPS TSA-യ്ക്കും അതിന്റെ HTTPS പാതയും സാധാരണ പരിശോധന, പ്രാമാണീകരണ നയവും ആവശ്യമാണ്.