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 विद्यमान KeyStore.PrivateKeyEntry हो। अनुप्रयोगको क्रेडेन्सियल स्रोतबाट प्रोक्सी खाताका मानहरू दिनुहोस्, त्यसपछि यो साइनरलाई यसको सामान्य ZipFile र आउटपुट-स्ट्रिम कार्यप्रवाहमा प्रयोग गर्नुहोस्।

अनुरोधकर्ता-प्रकारको विधेयले प्रोक्सी र गन्तव्य प्रमाणीकरण अलग राख्छ, गन्तव्यको चुनौतीले प्रोक्सी पासवर्ड नपाउने गरी रोक्छ; होस्ट र पोर्टले मध्यस्थलाई सीमित गर्छन्।

सिस्टम प्रोपर्टी र पूर्वनिर्धारित Authenticator पूरै JVM मा असर गर्छन्। एकैसाथ चल्ने कामहरू वरिपरि ती बदल्नुको सट्टा सुरुमै तिनको जीवनकाल निर्धारण गर्नुहोस्।

सार्वजनिक jdk.security.jarsigner API ले sun.security.tools.jarsigner.Main र पुराना tools.jar लेआउटबाट बच्छ। उदाहरणले HTTP TSA प्रयोग गर्छ; HTTPS TSA लाई पनि आफ्नो HTTPS मार्ग र सामान्य प्रमाणीकरण तथा प्रमाणीकरण नीति चाहिन्छ।

सम्बन्धित लेखहरू