Powershell Neo4j连接性Invoke-RestMethod

时间:2018-10-05 19:01:06

标签: powershell security neo4j passwords unauthorized

我正在尝试通过Invoke-RestMethod(PowerShell版本3、4、5)连接到Neo4j。

基于网络建议,我正在设置URI: $ Uri =“ http://localhost:7474/db/data/cypher

...随后调用调用rest方法(POST或GET,无所谓)

Invoke-RestMethod -Uri $Uri -Method Post -Body $Body -ContentType 'application/json'

我收到的消息是:

System.Net.WebException: The remote server returned an error: (401) Unauthorized.
   at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest request)
   at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()

我尝试放入http://userId/pwd@localhost:7474 .... 但错误是相同的。

还有另一种将身份验证信息传递给Neo4j的方法吗?

不能选择禁用安全性。

谢谢!

-亚历克斯

1 个答案:

答案 0 :(得分:0)

认证必须是http标准认证。您可以使用以下代码在powershell中进行此操作。

    $user = 'user'
$pass = 'pass'

$pair = "$($user):$($pass)"

$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))

$basicAuthValue = "Basic $encodedCreds"

$Headers = @{
    Authorization = $basicAuthValue
}

Invoke-RestMethod -Uri $Uri -Method Post -Body $Body -ContentType 'application/json' -Headers $Headers

背景 错误代码401表示服务器上的身份验证不正确。

我在文档中找到了此信息。 https://neo4j.com/docs/developer-manual/3.4/http-api/authentication/