@Bean
    public ElasticsearchClient elasticsearchClient() {
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials(username, password));
        HttpHost[] httpHosts = StrUtil.split(uris, ",").stream().map(HttpHost::create).toArray(HttpHost[]::new);
        ElasticsearchTransport transport;
        RestClient restClient = RestClient.builder(httpHosts).setCompressionEnabled(true)
                .setHttpClientConfigCallback(httpClientBuilder -> {
                    // 这里设置鉴权需要的用户名elastic和对应密码
                    httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    SSLContextBuilder sscb = SSLContexts.custom();
                    try {
                        sscb.loadTrustMaterial((TrustStrategy) (chain, authType) -> {
                            // 在这里跳过证书信息校验
                            log.info("isTrusted|" + authType + "|" + Arrays.toString(chain));
                            return true;
                        });
                    } catch (NoSuchAlgorithmException | KeyStoreException e) {
                        e.printStackTrace();
                    }
                    try {
                        httpClientBuilder.setSSLContext(sscb.build());
                    } catch (KeyManagementException | NoSuchAlgorithmException e) {
                        e.printStackTrace();
                    }
                    // 这里跳过主机名称校验
                    httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
                    return httpClientBuilder;
                }).build();
        transport = new RestClientTransport(restClient, new JacksonJsonpMapper());
        return new ElasticsearchClient(transport);
    }

注意:不要使用try-resource

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐