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 ਰਾਹ ਅਤੇ ਆਮ ਪੁਸ਼ਟੀ ਅਤੇ ਪ੍ਰਮਾਣਿਕਤਾ ਨੀਤੀ ਚਾਹੀਦੀ ਹੈ।