Java 9+ JarSigner API دىكى ۋاقىت تامغىسى تەلەپلىرى ئۈچۈن ۋاكالەتچى تەڭشەكلىرى
ئىچكى بۇيرۇق classes ئورنىغا ۋاكالەتچى تەلەپ قىلغۇچى، host ۋە port تەكشۈرۈشى بىلەن 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 ۋە چىقىرىش ئېقىمى خىزمەت ئېقىمىدا ئىشلىتىڭ.
تەلەپ قىلغۇچى تۈرى شەرتى ۋاكالەتچى ۋە نىشان دەلىللەش نى ئايرىپ تۇتىدۇ، نىشاننىڭ خىرىسىنىڭ ۋاكالەتچى پارولىنى ئېلىشىنى توسىدۇ؛ host ۋە port ۋاسىتىچىنى چەكلەيدۇ.
سىستېما خاسلىقلىرى ۋە سۈكۈتتىكى Authenticator پۈتۈن JVM غا تەسىر كۆرسىتىدۇ. ئۇلارنىڭ ئۆمرىنى قوزغىتىش چېغىدا بەلگىلەڭ، پاراللېل خىزمەتلەر ئەتراپىدا ئالماشتۇرماڭ.
ئاشكارا jdk.security.jarsigner API sun.security.tools.jarsigner.Main ۋە كونا tools.jar تىزىلىشىدىن ساقلىنىدۇ. مىسال HTTP TSA نى ئىشلىتىدۇ؛ HTTPS TSA غىمۇ ئۆزىنىڭ HTTPS يولى ۋە ئادەتتىكى دەلىللەش ۋە سالاھىيەت دەلىللەش سىياسىتى كېرەك.