Java 9+ JarSigner APIలో టైమ్స్టాంప్ అభ్యర్థనలకు ప్రాక్సీ సెట్టింగ్లు
అంతర్గత కమాండ్ క్లాసులకు బదులు ప్రాక్సీ అభ్యర్థకుడు, హోస్ట్ మరియు పోర్ట్ తనిఖీలతో Java 9+ యొక్క పబ్లిక్ JarSigner సెటప్ను ఉపయోగించండి.
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 మార్గం మరియు సాధారణ ధృవీకరణ మరియు ప్రామాణీకరణ విధానం అవసరం.