我想在Jersey 2.3客戶端上使用Apache連接器進行HTTPS連接。如何在Jersey 2.3客戶端上使用Apache Httpclient
我試過如下:
ClientConfig clientConfig = new ClientConfig();
clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, new PoolingClientConnectionManager());
ApacheConnector connector = new ApacheConnector(clientConfig);
clientConfig.connector(connector);
Client client = ClientBuilder.newBuilder()
.withConfig(clientConfig)
.sslContext(sslContext)
.hostnameVerifier(getHostnameVerifier())
.build();
然而,似乎作爲服務器的證書被拒絕,因爲不信任(sun.security.provider.certpath.SunCertPathBuilderException的SSLContext中被忽略:無法找到有效的認證路徑到要求的目標)
如果我刪除「.withConfig(clientConfig)」部分,SSL連接工作正常,但顯然沒有Apache連接器。有沒有辦法使用我自己的ClientConfig與Apache連接器以及我自己的SSLContext?
這很有效!唯一的問題是,這個類org.glassfish.jersey.SslConfigurator不允許選擇使用的密碼。我需要像 sslConfigurator.setEnabledCipherSuites(新的String [] { 「TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256」, 「TLS_RSA_WITH_AES_128_CBC_SHA256」, 「TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA」, 「TLS_RSA_WITH_AES_128_CBC_SHA」}); – Uli