[#40498] autoload SYMBOL, XX.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
8 messages
2005/01/08
[#40501] getopt — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
6 messages
2005/01/08
[#40519] What is singletonclass.superclass ? — sheepman <sheepman@...>
こんにちは、sheepman です。
6 messages
2005/01/11
[#40523] Re: アクセス情報の取得について — yuushi44@...
酒匂様、神戸様
4 messages
2005/01/12
[#40546] Net::IMAPの中のinlenって何ですか? — 内木場 美次 <uchikoba@...>
はじめまして。Rubyを始めて2ヶ月ちょっとの
6 messages
2005/01/20
[#40551] Net::IMAPで既に存在するディレクトリが削除できない — 内木場 美次 <uchikoba@...>
お疲れ様です。内木場です。
13 messages
2005/01/21
[#40571] dupとfrozen — Chikara Takamatsu <c_takamatu@...>
始めまして。高松と申します。
5 messages
2005/01/25
[#40580] enum 定数する場合のイディオム — Hiroshi Takagi <gollum@...>
高木@関西のネットワーク屋%Ruby novice monk です。
12 messages
2005/01/27
[#40581] Re: enum 定数する場合のイディオム
— "U.Nakamura" <usa@...>
2005/01/27
こんにちは、なかむら(う)です。
[ruby-list:40480] WEBrick Digest auth and qop=auth-int
From:
sheepman <sheepman@...>
Date:
2005-01-01 08:41:30 UTC
List:
ruby-list #40480
こんにちは、sheepman です。
WEBrick の Digest 認証 WEBrick::HTTPAuth::DigestAuth に関してです。
RFC 2617 によれば Digest 認証が成功した時にサーバが返す、Authentication-Info ヘッダに
含まれるハッシュ値 rspauth はサーバが保持するクライアントのパスワードのハッシュ値と
サーバが返すエンティティボディなどから計算することになっています。
このようなハッシュ値をレスポンスに添付することでレスポンスのエンティティボディが
通信経路上で改変されていないことが保証されます。パスワードのハッシュ値を知って
いるのはサーバとクライアントだけですから、正しい rspauth を計算できるのもサーバと
クライアントだけです。
RFC 2617 3.2.3 の以下の式の entity-body はサーバが返すレスポンスのエンティティボディだと
思います。
A2 = ":" digest-uri-value ":" H(entity-body)
というわけで、 httpauth/digestauth.rb は以下のように変える必要があると思います。
でも、authenticate(req, res) を呼んだ時には普通 res.body は空のはずですから
このままで良いのかは良く分かりません。
Index: httpauth/digestauth.rb
===================================================================
RCS file: /src/ruby/lib/webrick/httpauth/digestauth.rb,v
retrieving revision 1.3
diff -u -r1.3 digestauth.rb
--- httpauth/digestauth.rb 18 Dec 2004 06:16:01 -0000 1.3
+++ httpauth/digestauth.rb 1 Jan 2005 08:32:56 -0000
@@ -178,7 +178,7 @@
elsif auth_req['qop'] == "auth-int"
ha2 = hexdigest(req.request_method, auth_req['uri'],
hexdigest(req.body))
- ha2_res = digest("", auth_req['uri'], hexdigest(req.body))
+ ha2_res = digest("", auth_req['uri'], hexdigest(res.body))
end
if auth_req['qop'] == "auth" || auth_req['qop'] == "auth-int"
--
sheepman / TAMURA Takashi
sheepman@tcn.zaq.ne.jp http://sheepman.parfait.ne.jp/