HOME IP Messenger FastCopy Tech-memo Diary Twitter
SHIROUZU Personal Log

2009-12-23

_ [comp_misc] Apache 2.2.14 と IE(Vista/7) での Digest認証失敗

Apache 2.2.14 (Debian testing) と IE(Vista/7)間で Digest認証がいつの間にやら、失敗するようになっていた。(ただし、FirefoxはOK)

調べてみたところ、digest認証要求の WWW-Authenticate: の中身が、

WWW-Authenticate: Digest realm="realm_name", nonce="aS6hWjx7AAA=7dee8171dfa4357404f363e75c75126158320985", algorithm=MD5, qop="auth", Digest realm="realm_name", nonce="aS6hWjx7AAA=7dee8171dfa4357404f363e75c75126158320985", algorithm=MD5, qop="auth"

のように、Digest realm="... 以降の部分が、2回繰り返していることに起因するらしい。(RFC的にも問題?)

(この場合、IE(Vista/7) では、認証ダイアログが出るにもかかわらず、次の GETリクエストに Authorization:ヘッダがない)

mod_auth_digest.c を眺めてみると、line 1302 の note_digest_auth_failure() 内で、

apr_table_mergen(..."WWW-Authenticate",..."Digest realm...

という、同一のヘッダが存在する場合は、値部分をマージする関数が使われていたので、

apr_table_setn(..."WWW-Authenticate",..."Digest realm...

という、マージではなく置換する関数に変更したところ、無事、Vista/7 でも正常に動作することを確認。

ただし、そもそも2回呼ばれていること自体が問題なので、本来であれば呼び元を探求すべきだが、VIA Eden ではビルドに時間が掛かりすぎるため、とりあえず断念。


2004|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|08|09|11|
2007|01|02|03|04|05|06|07|08|09|10|12|
2008|01|02|03|06|07|08|11|
2009|01|03|04|05|06|07|08|10|12|
2010|04|05|07|08|09|11|
2011|02|03|04|05|06|07|08|12|
2012|02|04|06|11|
2013|06|09|
2014|04|05|06|07|08|09|
2015|02|04|05|06|07|08|09|10|11|12|
2016|01|03|04|06|07|08|09|10|11|12|
2017|01|02|03|06|07|08|09|11|12|
2018|01|02|05|06|07|10|

Web shirouzu.jp

Categories
Android | CeSleep | comp_misc | comp_tips | fastcopy | ipmsg | mailman | misc | npop | ScheEdit | sigsleep | tdiary | thinkpad