Mga setting ng proxy para sa mga kahilingang timestamp sa Java 9+ JarSigner API
Gamitin ang pampublikong setup ng JarSigner ng Java 9+ na may pagsusuri sa humihiling, host at port ng proxy sa halip na mga panloob na klase ng utos.
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 ang umiiral na KeyStore.PrivateKeyEntry. Ibibigay ang mga halaga ng account ng proxy mula sa pinagmulan ng kredensyal ng aplikasyon, pagkatapos ay gamitin ang tagapirma na ito sa karaniwang daloy ng trabaho nito sa ZipFile at output stream.
Pinapanatiling hiwalay ng panaguri ng uri ng humihiling ang pagpapatunay ng proxy at destinasyon, na pumipigil sa hamon ng destinasyon na makuha ang password ng proxy; nililimitahan ng host at port ang tagapamagitan.
Naapektuhan ng mga katangian ng system at default na Authenticator ang buong JVM. Itakda ang kanilang tagal sa pagsisimula sa halip na palitan ang mga ito sa paligid ng sabay-sabay na trabaho.
Iniiwasan ng pampublikong jdk.security.jarsigner API ang sun.security.tools.jarsigner.Main at lumang mga layout ng tools.jar. Gumagamit ang halimbawa ng HTTP TSA; kailangan din ng HTTPS TSA ang sariling ruta ng HTTPS at ang karaniwang patakaran sa pagpapatunay at pagpapatotoo.