[解決済み】cURLを使用してBasic HTTP認証を正しく定義する方法は?
質問
アピグリティを学習中です( Apigilityドキュメント -> RESTサービスチュートリアル ) で、cURL 経由で基本認証付きの POST リクエストを送信しようとしています。
$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status
YXBpdXNlcjphcGlwd2Q=
は、私の認証情報をBase64でエンコードした文字列です。
apiuser:apipwd
. 認証情報は
/data/htpasswd
(
apiuser:$apr1$3J4cyqEw$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"
どこが間違いなのでしょうか?どうすればうまくいくのでしょうか?
解決方法は?
curl -u username:password http://
curl -u username http://
ドキュメントページより。
-u, --user <user:password>
サーバー認証に使用するユーザー名とパスワードを指定します。 n、--netrc、--netrc-optionalよりも優先されます。
ユーザー名を単に指定した場合、curlはパスワードの入力を要求します。
ユーザー名とパスワードは最初のコロンで分割され、そのため このオプションでは、ユーザー名にコロンを使用することはできません。 パスワードは可能です。
WindowsベースのサーバーでKerberos V5を使用する場合は、Kerberos V5を含む必要があります。 Windows ドメイン名をユーザー名に含めると、サーバーが正常に動作します。 は、Kerberos チケットの取得に成功しました。そうでない場合は、最初の 認証ハンドシェイクに失敗する可能性があります。
NTLM を利用する場合、ユーザ名は単にユーザ名として指定することができる。 ドメインとフォレストが1つしかない場合は、ドメインなしで名前を指定します。 を設定する必要があります。
ドメイン名を指定するには、ダウンレベル・ログオン名またはUPNを使用します。 (User Principal Name)形式を使用します。例えば、EXAMPLEの場合、「EXAMPLE」userとなります。 それぞれ、[email protected]。
Windows SSPI対応のcurlバイナリを使用して、Kerberos V5を実行する場合。 Negotiate認証、NTLM認証、Digest認証のいずれかを使用する場合は、curlに ユーザ名とパスワードを環境から選択するには、以下のように指定します。 というオプションで、コロン1つで指定します。
このオプションを複数回使用した場合は、最後に使用されたものが使用されます。
http://curl.haxx.se/docs/manpage.html#-u
は必要ないことに注意してください。
--basic
フラグがデフォルトになっています。
関連
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] cURL呼び出しによるHTTPリクエストを使用してヘッダーを送信する方法は?
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] PHP、cURL、HTTP POSTの例?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] PHPのcurlでHTTP基本認証を使用してリクエストを行うにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTTPの "Host "ヘッダーとは何ですか?
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み】cURLを使用してBasic HTTP認証を正しく定義する方法は?
-
[解決済み] bash/shellスクリプトからhttp応答コードを評価する方法は?
-
[解決済み】http:// のリンクを全て // に変更することは可能ですか?
-
[解決済み】どのHTTPメソッドがどのCRUDメソッドと一致するか?
-
[解決済み】Accept* HTTPヘッダのq=0.5とは何ですか?
-
[解決済み] HTTP GETリクエストにcontent-typeヘッダーは必要ですか?
-
[解決済み] PragmaヘッダーとCache-Controlヘッダーの違い?
-
[解決済み] REST APIで "Not Ready Yet, Try Again Later "のHTTPステータスコードを選択するにはどうすればよいですか?[クローズド]。