1

我正在学习 Elasticsearch (6.1.3) 以在基于 Java 的 Web 应用程序中使用它。

我已经安装了 X-Pack。现在我需要知道如何通过简单地提供用户名和密码而不使用 SSL 在 Java 客户端中编程。我发现此页面很有帮助,但缺少:

https://www.elastic.co/guide/en/x-pack/current/java-clients.html

我对上面链接中的以下代码片段特别感兴趣:

TransportClient client = new PreBuiltXPackTransportClient(Settings.builder()
        .put("cluster.name", "myClusterName")
        .put("xpack.security.user", "transport_client_user:changeme")
        ...
        .build())
    .build()
    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300))
    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9301))

String token = basicAuthHeaderValue("test_user", new SecureString("changeme".toCharArray()));

client.filterWithHeader(Collections.singletonMap("Authorization", token))
    .prepareSearch().get();

此代码段是否适用于我的情况?密码包含在哪里?

我用谷歌搜索了很多,但找不到一个完整的例子。对于任何信息或链接,我将不胜感激。

4

1 回答 1

3

根据有关配置传输客户端以使用安全 ES 集群的XPack 文档,您关心的线路是这一行:

    .put("xpack.security.user", "transport_client_user:changeme")

在那里你可以看到你有一个用户名 ( transport_client_user) 和一个密码 ( changeme),所以你很高兴。

于 2018-02-06T04:44:07.933 回答