Proxy-ynstellings foar tiidstimpelfersiken mei de Java 9+ JarSigner-API
Brûk de iepenbiere Java 9+ JarSigner-opsetsje mei kontrôles fan proxy-oanfreger, host en poarte ynstee fan ynterne opdrachklassen.
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 is de besteande KeyStore.PrivateKeyEntry. Jou de proxy-akkountwearden út de bewiisboarne fan 'e applikaasje en brûk dizze ûndertekenjer dêrnei yn syn gewoane ZipFile- en útfierstream-wurkflow.
It predikaat fan oanfregertype hâldt proxy- en bestimmingsautentikaasje skieden en foarkomt dat in bestimmingsútdaging it proxywachtwurd krijt; host en poarte beheine de tuskenpersoan.
Systeemeigenskippen en de standert-Authenticator beynfloedzje de hiele JVM. Stel har libbensdoer by it opstarten yn ynstee fan se om konkurrinte taken hinne te wikseljen.
De iepenbiere jdk.security.jarsigner-API mijt sun.security.tools.jarsigner.Main en âlde tools.jar-ynderlingen. It foarbyld brûkt HTTP-TSA; HTTPS-TSA hat ek syn HTTPS-rûte en it gewoane ferifikaasje- en autentikaasjebelied nedich.