如何使用令牌

时间:2015-08-12 06:44:25

标签: java rest restheart

我已经使用RESTHeart和HTTPie连接到我的MongoDB,下一行:

http PUT 127.0.0.1:8080/myfirstdb desc='this is my first db created with restheart' -a username:password

但我认为在命令中直接使用我的RESTHeart用户名和密码是不安全的。如果不在命令中键入我的REST用户名和密码,如何安全地发出此请求?

2 个答案:

答案 0 :(得分:1)

再次引用RestHeart文档:

  

RESTHeart使用基本身份验证;每个请求都通过网络发送用户名和密码。   使用http侦听器并不安全:用户凭据可能被中间人攻击嗅探。

http://restheart.org/docs/configuration.html

基本身份验证(用户名:密码)似乎只支持身份验证模式。 RestHeart建议设置一个http s 监听器,这样就无法以纯文本方式嗅探您的密码。

答案 1 :(得分:1)

如果在命令中省略了密码,httpie将提示它。

http PUT 127.0.0.1:8080/myfirstdb desc='this is my first db created with restheart' -a username

如果成功通过身份验证,RESTHeart会返回一个auth-token,您可以将其用作进一步调用的临时密码(它有一个可以在配置文件中设置的生存时间)。

这是响应标头的示例:

 Auth-Token: 6a81d622-5e24-4d9e-adc0-e3f7f2d93ac7
 Auth-Token-Location: /_authtokens/user@si.com
 Auth-Token-Valid-Until: 2015-04-16T13:28:10.749Z 

所以你可以这样做(注意用作基本认证密码的auth-token):

http GET 127.0.0.1:8080/myfirstdb restheart' -a username:6a81d622-5e24-4d9e-adc0-e3f7f2d93ac7

另请注意,您应该在生产环境中使用https。

有关详细信息,请查看RESTHeart文档https://softinstigate.atlassian.net/wiki/x/W4CM

的安全性部分