neo4j REST API身份验证和授权

时间:2015-11-23 08:04:01

标签: neo4j

我输入

http://localhost:7474/user/neo4j
在网络浏览器上

我收到了消息:

{
"errors" : [ {
"message" : "No authorization header supplied.",
"code" : "Neo.ClientError.Security.AuthorizationFailed"
} ]
}

我在neo4j上搜索文档,并说:

Authenticate by sending a username and a password to Neo4j using HTTP Basic Auth. Requests should include an Authorization header, with a value of Basic <payload>, where "payload" is a base64 encoded string of "username:password".

Example request

GET http://localhost:7474/user/neo4j
Accept: application/json; charset=UTF-8
Authorization: Basic bmVvNGo6c2VjcmV0 

Example response

200: OK
Content-Type: application/json; charset=UTF-8 

我正在使用网络浏览器查看信息,如何在网络浏览器(Firefox)中“包含授权标题”?我不明白它说的是什么。如何输入这些示例请求?

1 个答案:

答案 0 :(得分:8)

仅使用浏览器传递身份验证标头的最简单方法是使用URL内身份验证:

http://username:password@localhost:7474/user/neo4j

更一般地说,在测试REST API时,最好使用命令行工具,例如curl而不是浏览器。如果您使用的是Linux / Mac,那么您可能已经安装了curl。如果您使用的是Windows,则可以下载卷曲。

Curl允许您按照以下方式微调发送的标题:

curl --header 'Authorization: Basic dGVzdDp0ZXN0' 'http://localhost:7474/user/neo4j'

或者更简单地说,您可以使用--user选项:

curl --user 'myusername:mypassword' 'http://localhost:7474/user/neo4j'

纯粹地说,Neo4J的回复中的WWW-Authenticate标题如下:

WWW-Authenticate: None

如果它包含scheme和realm的值,那么Firefox会弹出一个对话框,提示您输入用户名和密码:

WWW-Authenticate: Basic realm="WallyWorld"

输入用户名/密码后,FF会发送一个后续请求,其中包含相应的Authorization标头,其中包含所提供用户名的base64编码值:password。

此处提供了有关HTTP基本身份验证的更多详细信息:HTTP Basic Authentication