2009年3月25日水曜日

chrome + rep2 -> bad request?

Digest認証をかけている自宅サーバのrep2に対して chrome からアクセスすると、
Digest認証は通るみたいなんですが、rep2の認証を終えたあとに、bad requestになってしまいます。
accessとerrorのログはこんな感じ。

[Wed Mar 18 06:14:20 2009] [error] [client 127.0.0.1] Digest: uri mismatch - </~pppppp/rep2/> does not match request-uri </~pppppp/rep2/?guid=ON>, referer: http://localhost:8931/~pppppp/rep2/

localhost - - [18/Mar/2009:06:14:20 +0900] "POST /~pppppp/rep2/?guid=ON HTTP/1.1" 401 401 "http://localhost:8931/~pppppp/rep2/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.48 Safari/525.19"
localhost - p2user [18/Mar/2009:06:14:20 +0900] "POST /~pppppp/rep2/?guid=ON HTTP/1.1" 400 226 "http://localhost:831/~pppppp/rep2/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.48 Safari/525.19"

(ログに> < で括られてるのが入るとblogに転載し辛いなあ…)

digest bad request で検索すると……
ただし、IE6 では Digest 認証を使って foo.cgi?FOO=BAR のような URL にリクエストすると、 誤ったリクエストを送ってしまうバグがあります。 以下の URL は Mozilla や FireFox では正しく閲覧できますが、IE6 だと正しいユーザ名・パスワードを送信しても、 400 Bad Request になってしまいます (Windows XP SP2 + IE6 で確認)。

なお、IE7 ではこのバグは修正されています。

http://x68000.q-e-d.net/~68user/net/http-auth-2.html

これかな?確かにIE7なら問題なく表示できたので、同じような設定をchromeに対して設定してみると・・・?


#(.htaccess に以下の文を追加)
BrowserMatch "Chrome" AuthDigestEnableQueryStringHack=On


正しく表示されるようになりました。めでたしめでたし。

余談:そこで検索キーワードにchromeを入れなかったのが悪い。
http://blog.recyclebin.jp/archives/239
http://blog.makotokw.com/2008/09/08/google_chromedigest/
http://groups.google.com/group/google-chrome-help-jp-report-a-bug/browse_thread/thread/fe1280ecd27db0b0?pli=1


なぬ、--new-httpオプションとな?

0 件のコメント: