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 ಮಾರ್ಗ ಮತ್ತು ಸಾಮಾನ್ಯ ಪರಿಶೀಲನೆ ಮತ್ತು ದೃಢೀಕರಣ ನೀತಿ ಬೇಕು.