Nic*_*rtn 7 authentication curl elasticsearch
我正在使用Docker官方映像在开发模式下测试Elasticsearch。
基本安装基于X_pack和基本身份验证。
通过执行卷曲,一切工作正常:
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"
}'
Run Code Online (Sandbox Code Playgroud)
但是有一种方法可以执行令牌请求(使用用户名和密码),然后使用令牌查询Elasticsearch。不必在每次执行查询时都指定用户名/密码?
Tar*_*ani 11
Docker映像中的默认X_Pack启用了基本身份验证。您正在使用哪个。相同的令牌是base64(user:password)。您可以使用http://base64encode.org并输入:来生成相同的内容。
在curl中,有两种方法可以调用基本身份验证URL
curl -XPUT -u elastic:elasticpassword "http://localhost:9200/movies/movie/1" -d''
Run Code Online (Sandbox Code Playgroud)
您已经在使用
curl -H "Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==" -XPUT "http://localhost:9200/movies/movie/1" -d'....'
Run Code Online (Sandbox Code Playgroud)
现在,如果您的问题是一遍又一遍地输入,那么最好在bash配置文件中创建一个别名,如下所示
alias curles = 'curl -u elastic:elasticpassword'
Run Code Online (Sandbox Code Playgroud)
之后,您可以按以下方式调用命令
curles -XPUT "http://localhost:9200/movies/movie/1" -d''
Run Code Online (Sandbox Code Playgroud)
小智 6
删掉很多我原来的答案,因为你可能会争辩说这都是本地的,但在这里留下一个关于安全的主要抱怨:
curl -X GET --user myuser:mypassword "http://elasticsearch:9200/_cluster/health?pretty"
Run Code Online (Sandbox Code Playgroud)
就我而言,上面的卷曲有帮助
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 16,
"active_shards" : 16,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10078 次 |
| 最近记录: |