Как правильно определить базовую аутентификацию HTTP с помощью cURL?



Я учусь Apigility (Apigility docu - > Rest Service Tutorial) и пытается отправить запрос POST с обычной аутентификацией через cURL:



$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status


YXBpdXNlcjphcGlwd2Q= это базовая 64 кодированная строка с моими учетными данными apiuser:apipwd. Учетные данные сохраняются в /data/htpasswd (apiuser:$apr1J4cyqEw$WKga3rQMkxvnevMuBaekg/).



выглядит так:



HTTP/1.1 401 Unauthorized
Server: nginx/1.4.7
Date: Mon, 22 Sep 2014 07:48:47 GMT
Content-Type: application/problem+json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.12-1~dotdeb.1
WWW-Authenticate: Basic realm="api"


где ошибка? Как заставить его работать?

742   2  

2 ответов:

curl -u username:password http://
curl -u username http://

на странице документации:

- u, --user

Укажите имя пользователя и пароль для проверки подлинности сервера. Переопределяет -n, --netrc и --netrc-необязательно.

Если вы просто укажете имя пользователя, curl запросит пароль.

имя пользователя и пароли разделяются на первом двоеточии, которое делает невозможным использование двоеточия в имени пользователя с этим выбор. Пароль может, еще.

при использовании Kerberos V5 с сервером под управлением Windows необходимо включить доменное имя Windows в имени пользователя, чтобы сервер успешно получить билет Kerberos. Если вы этого не сделаете, то начальный проверка подлинности рукопожатия может завершиться ошибкой.

при использовании NTLM имя пользователя может быть указано просто как пользователь имя, без домена, если есть один домен и лес в например, ваша настройка.

указать доменное имя или нижнего уровня имя пользователя или имя участника-пользователя (Имя участника-пользователя) форматы. Например, пример\пользователь и [email protected] соответственно.

Если вы используете двоичный файл curl с поддержкой Windows SSPI и выполняете Kerberos V5, Согласование, NTLM или дайджест-аутентификация, то вы можете сказать curl выберите имя пользователя и пароль из своей среды, указав один двоеточие с этой опцией: "- u:".

Если используется эта опция несколько раз будет использоваться последний.

http://curl.haxx.se/docs/manpage.html#-u

обратите внимание, что вам не нужно --basic флаг, как это по умолчанию.

при использовании OAuth или других служб аутентификации вы также можете отправить свой токен доступа в строке запроса, а не в заголовке авторизации, поэтому что-то вроде:

GET https://www.example.com/v1/users/1?access_token=abcdefghijklmnopqrstuvwxyz1234567890ABCD

Comments

    Ничего не найдено.