LoginSignup
0
0

More than 5 years have passed since last update.

open-rui.rb の 「407 "Proxy Authentication Required" (Net::HTTPServerException)」に対するアレ

Posted at

自分、Proxy の認証ユーザー名に "@" 挟んでるんで、環境変数 http_proxy にプロキシ設定する時に @%40 に置きかえて設定してます。すると良く見る open-uri.rb のパッチを当てただけだとやっぱりダメで

open-uri.rb.patch
--- lib/ruby/2.2.0/open-uri.rb.orig
+++ lib/ruby/2.2.0/open-uri.rb
@@ -254,6 +254,12 @@
   def OpenURI.open_http(buf, target, proxy, options) # :nodoc:
     if proxy
       proxy_uri, proxy_user, proxy_pass = proxy
+      if proxy_uri.userinfo
+        proxy_user, proxy_pass = proxy_uri.userinfo.split(':')
+        proxy_user = URI.decode proxy_user
+#        proxy_pass = URI.decode proxy_pass
+        proxy_uri = URI.parse(proxy_uri.scheme + '://' + proxy_uri.host + ':' + proxy_uri.port.to_s)
+      end
       raise "Non-HTTP proxy URI: #{proxy_uri}" if proxy_uri.class != URI::HTTP
     end

URI.decode が必要でした。password 側の decode はやりすぎかなとも思うけど、必要な人もいるよね、きっと。パスワードに '@' とか ':' とか付けたいよね。でも他の多くの場所で破滅しそう。

password 側の decode は試してないので確認してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0