0

我按照此处提到的步骤使用SearchGuard保护我的本地 ES 安装(SO 上不存在标签)。现在,只能通过使用用户名密码作为默认用户名密码的基本身份验证通过 Postman 访问它admin/admin

现在,我需要允许我的 Spring Data ES 项目能够访问这个 ES 安装。

我试过了:

Settings esSettings = Settings.settingsBuilder()
            .put("path.home", ".")
            .put("cluster.name", clusterName)
            .put("searchguard.ssl.transport.enabled", true)
            .put("searchguard.ssl.transport.keystore_filepath", "kirk-keystore.jks")
            .put("searchguard.ssl.transport.truststore_filepath", "truststore.jks")
            .put("searchguard.ssl.transport.enforce_hostname_verification", false)
            .put("request.headers.sg.impersonate.as", "admin")
            .build();

TransportClient client = TransportClient.builder().settings(esSettings)
            .build().addTransportAddress(
            new InetSocketTransportAddress(InetAddress.getByName(elasticsearchHost), elasticsearchPort));

client.prepareGet().putHeader("Authorization", "Basic " + Base64.encodeBase64("admin:admin".getBytes())).get();

return client;

按照此处的建议添加标题。

但我得到的只是:

[elasticsearch[Meteorite][generic][T#3]] INFO  org.elasticsearch.client.transport - 
[Meteorite] failed to get node info for {#transport#-1}{127.0.0.1}{127.0.0.1:9300}, disconnecting...
org.elasticsearch.transport.NodeDisconnectedException: [][127.0.0.1:9300][cluster:monitor/nodes/liveness] disconnected

我需要在 ES (2.4.4) 中获取和发布新数据。

4

0 回答 0