Java 9+ JarSigner API'de zaman damgası istekleri için proxy ayarları
Dahili komut sınıfları yerine proxy istekte bulunan, ana makine ve bağlantı noktası denetimleriyle Java 9+ genel JarSigner yapılandırmasını kullanın.
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 mevcut KeyStore.PrivateKeyEntry. Proxy hesap değerlerini uygulamanın kimlik bilgisi kaynağından sağlayın, ardından bu imzalayıcıyı olağan ZipFile ve çıktı akışı iş akışında kullanın.
İstekte bulunan türü koşulu proxy ve hedef kimlik doğrulamasını ayrı tutar ve hedef meydan okumasının proxy parolasını almasını engeller; ana makine ve bağlantı noktası aracıyı sınırlar.
Sistem özellikleri ve varsayılan Authenticator tüm JVM'i etkiler. Bunları eşzamanlı işlerin etrafında değiştirmek yerine başlangıçta ömürlerini belirleyin.
Genel jdk.security.jarsigner API'si sun.security.tools.jarsigner.Main ve eski tools.jar düzenlerinden kaçınır. Örnek HTTP TSA kullanır; HTTPS TSA da kendi HTTPS rotasına ve olağan doğrulama ve kimlik doğrulama politikasına ihtiyaç duyar.