w3m + Digest 認証

w3m で Digest 認証のページを見ようとすると,400 Bad Request が返ることがある.



特に,ディレクトリ末尾のスラッシュを抜かしてアクセスするとはねられる (例えば http://www.example.com/dir のような URL).また,認証後に別のページに移動しようとするとはねられたりする.

Apache サーバ側の設定のせいかとも思ったのだが,mod_dir も組み込まれているし,telnet で直接つないでみるとちゃんと 301 Moved Permanently が返る (当初,telnet で手動 Digest 認証をやろうとして,チャレンジ応対の煩雑さに挫折.以下のページの Perl スクリプトを使わせて頂いた.素晴らしい!).

というわけで,どうもページ遷移やリダイレクトがある場合に w3m が古い nonce 値を使ってしまうとかそういうことかなあと思い,ぐぐってみたところ,バグだったようでパッチが出ていた.早速パッチを当ててみた.一部,ちゃんと当たらないので手で当てる.見事に症状が収まった.



Digest 認証といえば,IE6 でクエリが解釈されず Bad Equest が返るバグ,というのにも今回遭遇した.これは逆に Apache 側でバッドノウハウ的対処法があるようだ.