[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25689] Re: https proxy authentication

From: GOTOU Yuuzou <gotoyuzo@...>
Date: 2005-02-12 16:49:11 UTC
List: ruby-dev #25689
In message <87vf8zh241.fsf@serein.a02.aist.go.jp>,
 `Tanaka Akira <akr@m17n.org>' wrote:
> 試してないので間違ってたらすみませんが、net/http, net/https は https
> proxy で認証を行えない感じがします。
(snip)
> また、その場合 (proxy がなぜか使えてしまった場合) Proxy-Authorization:
> は origin server に送られてしまうように思えます。もしそれがそうである
> ならば、可能性としてはパスワードを意図せざるサーバに送ってしまうわけで、
> あまりよろしくないんじゃないでしょうか。まぁ、その場合はそのパスワード
> には意味がないようにも思えますが。

たしかに。
というわけでこんな感じでどうでしょう?>青木さん

CONNECT後に、Request-URIとしてhttpsスキームのURIを送るとエラー
になるケースに遭遇したので、ProxyDelta#edit_pathも修正してい
ます。

-- 
ごとうゆうぞう

--- lib/net/http.rb	1 Jan 2005 08:59:47 -0000	1.123
+++ lib/net/http.rb	12 Feb 2005 16:33:47 -0000
@@ -462,6 +462,12 @@     def connect
         if proxy?
           @socket.writeline sprintf('CONNECT %s:%s HTTP/%s',
                                     @address, @port, HTTPVersion)
+          @socket.writeline "Host: #{@address}:#{@port}"
+          if proxy_user
+            credential = ["#{proxy_user}:#{proxy_pass}"].pack('m')
+            credential.delete!("\r\n")
+            @socket.writeline "Proxy-Authorization: Basic #{credential}"
+          end
           @socket.writeline ''
           HTTPResponse.read_new(@socket).value
         end
@@ -601,11 +607,7 @@       def conn_port
       end
 
       def edit_path(path)
-        if use_ssl?
-          "https://#{addr_port()}#{path}"
-        else
-          "http://#{addr_port()}#{path}"
-        end
+        use_ssl? ? path : "http://#{addr_port()}#{path}"
       end
     end
 
@@ -924,7 +926,9 @@     def request(req, body = nil, &block)
         }
       end
       if proxy_user()
-        req.proxy_basic_auth proxy_user(), proxy_pass()
+        unless use_ssl?
+          req.proxy_basic_auth proxy_user(), proxy_pass()
+        end
       end
 
       req.set_body_internal body

In This Thread

Prev Next