Starpniekservera iestatījumi laikspiedoga pieprasījumiem Java 9+ JarSigner API
Izmantojiet Java 9+ publisko JarSigner iestatījumu ar starpniekservera pieprasītāja, resursdatora un porta pārbaudēm, nevis iekšējām komandu klasēm.
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 ir esošais KeyStore.PrivateKeyEntry. Norādiet starpniekservera konta vērtības no lietotnes akreditācijas datu avota, pēc tam izmantojiet šo parakstītāju tā parastajā ZipFile un izvades straumes darbplūsmā.
Pieprasītāja tipa predikāts uztur starpniekservera un galamērķa autentifikāciju atsevišķi un neļauj galamērķa izaicinājumam saņemt starpniekservera paroli; resursdators un ports ierobežo starpnieku.
Sistēmas rekvizīti un noklusējuma Authenticator ietekmē visu JVM. Iestatiet to darbības laiku palaišanas brīdī, nevis pārslēdziet tos ap vienlaicīgiem darbiem.
Publiskā jdk.security.jarsigner API izvairās no sun.security.tools.jarsigner.Main un vecajiem tools.jar izkārtojumiem. Piemērā tiek izmantots HTTP TSA; HTTPS TSA arī nepieciešams savs HTTPS maršruts un parastā pārbaudes un autentifikācijas politika.