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 on olemasolev KeyStore.PrivateKeyEntry. Esitage puhverserveri konto väärtused rakenduse volituste allikast ja kasutage seejärel seda allkirjastajat selle tavapärases ZipFile'i ja väljundvoo töövoos.

Taotlejatüübi predikaat hoiab puhverserveri ja sihtkoha autentimise eraldi, takistades sihtkoha väljakutsel saada puhverserveri parooli; host ja port piiravad vahendajat.

Süsteemiomadused ja vaikimisi Authenticator mõjutavad kogu JVM-i. Määrake nende eluiga käivitamisel, mitte ei lülitage neid ümber samaaegsete tööde ajal.

Avalik jdk.security.jarsigner API väldib sun.security.tools.jarsigner.Main ja vanu tools.jar paigutusi. Näide kasutab HTTP TSA-d; HTTPS TSA vajab ka oma HTTPS-marsruuti ning tavalist kontrolli- ja autentimispoliitikat.

Seotud artiklid