ホーム DoRuby IEでダイジェスト認証をかけるとエラーになった。

IEでダイジェスト認証をかけるとエラーになった。

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

こんにちはひさしぶりに書きます。

今日は新人プログラマーカツオがはまったdigest認証にまつわるIEのエラーについて書きます。

 自分が担当しているプロジェクトで管理画面に

DIGEST認証をかけることになりました。

ということで頑張って書けたんですけど

FIREFOXだと普通にDigest認証がかかっているのに

どうゆうわけかIEだと認証がかからないわけです。

400 Bad Requestがでました。

ログをみたらこんな感じ

Tue Apr 15 11:19:59 2008] [error] [client xxx.xxx.xxx.xxx] Digest: uri mismatch 
- </admin/tour> does not match request-uri </admin/tour?page=1>  

 何やら調べてみたら

 IE6以前のバージョンでdigest認証を利用するとAuthorizationヘッダの,uri に ?以降のパラメータが含まれずHTTP400のエラーがでてるみたいです。

IEのバグだそうです。IE7では改善されているようですが。

そんなわけで

 <Location /admin>    AuthType Digest 
    AuthName "Enter ID and Password"
    AuthDigestProvider file
    AuthUserFile conf/xxx/.htdadmin
    require valid-user
    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
  </Location> 

と赤字で書いたところをダイジェスト認証に書いてあげれば

強制的に回避してくれるみたいですよ。

ちょっと自分のメモ書きみたいになってしまいましたが

文章苦手なので許してくださいませ。

ではではまた。

記事を共有

最近人気な記事