Ich habe ein Projekt, in dem HttpsURLConnection configed ist eine angepasste Trustmanager wie folgt zu verwenden:Wie kann Jersey-Client die in HttpsURLConnection festgelegte defaultSSLSocketFactory verwenden?
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[]{new MyTrustManager()}, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
ein REST Es gibt in diesem Projekt API-Client ist, verwendet es Jersey-Client HTTP/HTTPS-Anfrage senden:
Die von diesem Jerset-Client initiierte HTTPS-Verbindung verwendet jedoch nicht die in HttpsURLConnection festgelegte defaultSSLSocketFactory, und es wird keine Verbindung zur nicht vertrauenswürdigen HTTPS-URL hergestellt.
Ich muss den SslContext explizit auf diesem Client festlegen, damit es mit meinem TrustManager funktioniert.
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[]{new MyTrustManager()}, null);
Client client = ClientBuilder.newBuilder().sslContext(sslContext).build();
Gibt es eine Möglichkeit, dieses Problem zu lösen?
Danke.
Does http://stackoverflow.com/questions/ 2145431/https-using-jersey-client antwortest du? –
Nein. Dieser Beitrag lehrt, wie Sie eine Anfrage per HTTPS-URL über Jersey senden. Ich weiß, wie man das macht (wie im letzten Ausschnitt gezeigt). Was ich nicht weiß ist, wie der Jersy-Client den SslContext verwenden kann, den ich in HttpsURLConnection eingestellt habe. Der Grund, warum ich dies tun möchte, ist, dass ich keine Berechtigung habe, den REST-API-Client-Code zu bearbeiten, um SslContext explizit auf dem Jersey-Client zu setzen. – Lee