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 маршруты мен әдеттегі тексеру және аутентификация саясаты қажет.