Nastavitve posredniškega strežnika za zahteve za časovni žig v Java 9+ JarSigner API
Uporabite javno nastavitev JarSigner v Java 9+ s preverjanjem prosilca, gostitelja in vrat posrednika namesto notranjih razredov ukazov.
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 je obstoječi KeyStore.PrivateKeyEntry. Navedite vrednosti računa posrednika iz vira poverilnic aplikacije in nato uporabite tega podpisnika v običajnem poteku ZipFile in izhodnega toka.
Predikat vrste prosilca ohranja preverjanje posrednika in cilja ločeno ter preprečuje, da bi izziv cilja prejel geslo posrednika; gostitelj in vrata omejujeta posrednika.
Sistemske lastnosti in privzeti Authenticator vplivajo na celotno JVM. Nastavite njihovo življenjsko dobo ob zagonu, namesto da bi jih preklapljali med sočasnimi opravili.
Javni jdk.security.jarsigner API se izogiba sun.security.tools.jarsigner.Main in starim postavitvam tools.jar. Primer uporablja HTTP TSA; HTTPS TSA potrebuje tudi svojo pot HTTPS in običajno politiko preverjanja in avtentikacije.