Obecnie nadpisuję X509TrustManager, aby umożliwić wszystkim certyfikatom tymczasowe "rozwiązanie" (w tym przypadku niebezpieczne). Próbuję dowiedzieć się, w jaki sposób chciałbym dodać, aby zaakceptować tylko konkretny certyfikat, z którym mam problemy, aż do momentu, w którym można będzie naprawić poprawkę (co w tej chwili jest poza moim zasięgiem). Oto aktualny kod.X509TrustManager Override bez zezwolenia na WSZYSTKIE certyfikaty?
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
@Override
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
}};
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (GeneralSecurityException e) {
System.out.println(e.getStackTrace());
}
dlaczego zwraca zero zamiast pustej tablicy? specyfikacja mówi, że zwraca tablicę o wartości niezerowej. – Jayen