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.

İlgili makaleler