Java 9+ JarSigner API'da vaqt tamg'asi so'rovlari uchun proksi sozlamalari
Ichki buyruq sinflari o'rniga proksi so'rovchi, xost va port tekshiruvlari bilan Java 9+ ochiq JarSigner sozlamasidan foydalaning.
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 mavjud KeyStore.PrivateKeyEntry hisoblanadi. Proksi hisob qiymatlarini ilova hisob ma'lumotlari manbasidan bering, so'ng bu imzolovchini uning odatdagi ZipFile va chiqish oqimi ish jarayonida ishlating.
So'rovchi turi predikati proksi va manzil autentifikatsiyasini alohida ushlab turadi, manzil chaqirig'ining proksi parolini olishiga yo'l qo'ymaydi; xost va port vositachini cheklaydi.
Tizim xossalari va standart Authenticator butun JVM'ga ta'sir qiladi. Ularning umrini ishga tushirishda belgilang, parallel ishlar atrofida almashtirmang.
Ochiq jdk.security.jarsigner API sun.security.tools.jarsigner.Main va eski tools.jar tartiblaridan qochadi. Misolda HTTP TSA ishlatiladi; HTTPS TSA ham o'zining HTTPS yo'nalishi va odatdagi tekshiruv hamda autentifikatsiya siyosatini talab qiladi.