我正在使用docker官方图片在开发模式下测试Elasticsearch。
基本安装基于X_pack和基本身份验证。
通过执行curl来完成所有工作:
curl -XPUT -u elastic:elasticpassword "http://localhost:9200/movies/movie/1" -d'
{
"title": "The Godfather",
"director": "Francis Ford Coppola",
"year": 1972, "user":"elastic", "password":"changeme"
}'
但是有没有办法执行令牌请求(使用用户和密码),然后使用令牌查询Elasticsearch。而不是每次执行查询时都必须指定用户/密码?
答案 0 :(得分:6)
docker镜像中的默认X_Pack已启用基本身份验证。这是你正在使用的。相同的令牌是base64(用户:密码)。您可以使用http://base64encode.org生成相同内容并输入:。
在curl中,有两种方法可以调用基本身份验证URL
curl -XPUT -u elastic:elasticpassword "http://localhost:9200/movies/movie/1" -d''
你已经使用的
curl -H "Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==" -XPUT "http://localhost:9200/movies/movie/1" -d'....'
现在,如果您的问题反复出现,那么您最好在bash配置文件中创建一个别名,如下所示
alias curles = 'curl -u elastic:elasticpassword'
之后,您可以按以下方式调用命令
curles -XPUT "http://localhost:9200/movies/movie/1" -d''
答案 1 :(得分:0)
切出我最初的很多答案,因为您可能会说这全都是本地的,但在这里留下了有关安全性的主要抱怨:
答案 2 :(得分:0)
根据 Taran 的回答,如果您想生成 base64 令牌,可以通过以下命令进行:
echo -n 'username:pass' | openssl base64