Подключение Powershell Neo4j Invoke-RestMethod
Я пытаюсь подключиться к Neo4j через Invoke-RestMethod (PowerShell версии 3,4,5).
Основываясь на веб-рекомендациях, я устанавливаю 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?
Отключение безопасности не вариант.
Спасибо!
--Alex
1 ответ
Аутентификация должна быть стандартной 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/