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 ପଥ ଏବଂ ସାଧାରଣ ଯାଞ୍ଚ ଏବଂ ପ୍ରମାଣୀକରଣ ନୀତି ଆବଶ୍ୟକ କରେ।