RestClientBuilder дает исключение ввода-вывода - PullRequest
1 голос
/ 27 мая 2020

Я получаю исключение ниже, когда пытаюсь подключиться к ES промежуточно.

  final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
                               credentialsProvider.setCredentials(AuthScope.ANY,
                               new UsernamePasswordCredentials(esUserName, esPassword));
                                        .setHttpClientConfigCallback(new 
                              RestClientBuilder.HttpClientConfigCallback() {


@Override
                                public HttpAsyncClientBuilder 
                         customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                                    return 
                            httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                                }
                            });


                          try {
                           Path caCertificatePath = Paths.get("/app/certs/xxxx.xxx.xxxx.com.cer");
                           CertificateFactory factory;
                            factory = CertificateFactory.getInstance("X.509");
                             Certificate trustedCa;
                          try (InputStream is = Files.newInputStream(caCertificatePath)) {
                            trustedCa = factory.generateCertificate(is);
                           }
                          KeyStore trustStore = KeyStore.getInstance("pkcs12");
trustStore.load(null, null);
                          trustStore.setCertificateEntry("ca", trustedCa);
                           SSLContextBuilder sslContextBuilder = SSLContexts.custom()
                            .loadTrustMaterial(trustStore, null);
                            final SSLContext sslContext = sslContextBuilder.build();
                           builder = RestClient.builder(
                            new HttpHost(hostName, Integer.valueOf(portNumber),esProtocol))
                            .setHttpClientConfigCallback(new HttpClientConfigCallback() {
                                @Override
                                public HttpAsyncClientBuilder customizeHttpClient(
                                    HttpAsyncClientBuilder httpClientBuilder) {
                                    return httpClientBuilder.setSSLContext(sslContext);
                                }
                            });
                         builder.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));

builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(5000)
                        .setSocketTimeout(60000)).setMaxRetryTimeoutMillis(60000);

Исключение

2020-05-26 16:03:30.207 ERROR [default task-284][SearchMVCAction:148] exception in getting response
java.io.IOException: Unrecognized SSL message, plaintext connection?
at org.elasticsearch.client.RestClient$SyncResponseListener.get(RestClient.java:954)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:229)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1593)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1563)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1525)
at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:990)
at com.companyname.searchresults.actions.SearchMVCAction.processAction(SearchMVCAction.java:146)
at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:378)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.EngineInputRecord.bytesInCompletePacket(EngineInputRecord.java:156)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:857)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:766)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:273)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:328)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:509)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:120)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)

Я получаю эту проблему при попытке подключиться к серверу ElasticSearch .

...