Mipangilio ya proksi kwa maombi ya muhuri wa muda katika Java 9+ JarSigner API
Tumia usanidi wa umma wa JarSigner wa Java 9+ na ukaguzi wa mwombaji, mwenyeji na bandari ya proksi badala ya madarasa ya amri ya ndani.
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 ni KeyStore.PrivateKeyEntry iliyopo. Toa thamani za akaunti ya proksi kutoka chanzo cha vitambulisho vya programu, kisha tumia kisaini hiki katika mtiririko wake wa kawaida wa ZipFile na mtiririko wa matokeo.
Kihusishi cha aina ya mwombaji hutenganisha uthibitishaji wa proksi na lengwa, kikizuia changamoto ya lengwa kupokea nenosiri la proksi; mwenyeji na bandari huzuia mpatanishi.
Sifa za mfumo na Authenticator chaguo-msingi huathiri JVM nzima. Weka muda wa uhai wao wakati wa kuanza badala ya kuzibadilisha kuzunguka kazi zinazofanyika kwa wakati mmoja.
API ya umma jdk.security.jarsigner huepuka sun.security.tools.jarsigner.Main na mipangilio ya zamani ya tools.jar. Mfano hutumia HTTP TSA; HTTPS TSA pia huhitaji njia yake ya HTTPS na sera ya kawaida ya ukaguzi na uthibitishaji.