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.

Saistītie raksti