对于很多的开发者来说,他们很习惯用 Postman 来测试 REST 接口。对于 Postman 访问 Elasticsearch 来说,非常地直接。但是有一种情况,我没有展示,那就是:当一个集群启动安全过后,我们该如何使用用户名及密码来访问我们的Elasticsearch 集群呢?
将 Elasticsearch HTTP / REST 客户端与 Shield 结合使用
首先,我们可以参考 Elastic 的官方文档。如文档所示:Elasticsearch 与标准 HTTP 基本身份验证 header 一起使用以识别请求者。 由于 Elasticsearch 是无状态的,因此此标头必须与每个请求一起发送:
Authorization: Basic
在这里<TOKEN>计算为 base64(USERNAME:PASSWORD)。
我们在网上找一个计算 base64 的在线工具?www.base64encode.org/。假设我们的用户名是 elastic,而我们的密码是123456。
我们把 elastic:123456 输入后,在点击 ENCODE 按钮,我们就可以发现被编码后的 base64 代码?ZWxhc3RpYzoxMjM0NTY=。这个将是我们在如下进行 Postman 请求时填入到 header 里的字符串。
使用 Postman 访问 Elasticsearch
有了上面的方法可以得到 base64 的 token,那么我就可以在 Postman 中进行配置了。我们打开 Postman:
如上图所示:我们填入 Elasticsearch 的访问地址,同时在 header 的 Authorization 部分填入相应的 Basic <token>。等我们填完好后,我们点击?Send 按钮。在下面我们就可以看出返回来的结果。
在我们请求时,如果有 payload 的情况下,该怎么办呢?我们可以把我们的 payload 写入到 Postman 的 body 里:
一旦我们使用 Postman 能够完成我们的 API 接口的测试,我们可以使用任何一种语言来发起对 Elasticsearch 的请求,甚至我们不需要考虑那些语言所提供的接口。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理