Open-uri.rb causing proxy problems?


I'm behind a squid proxy trying to install gems, to no avail (the
http_proxy env var is correctly set):

  Error fetching remote gem cache: 407 Proxy Authentication Required

I took a look at gem's remote_fetcher.rb, which in turn uses open-uri
as a wrapper to net/http:

      connection_options = {
        "User-Agent" => "RubyGems/#{Gem::RubyGemsVersion}",
        :proxy => @proxy_uri,
      open(uri, connection_options, &block)

Examining open-uri.rb, I changed the line

      klass = Net::HTTP::Proxy(, proxy.port)


      klass = Net::HTTP::Proxy(, proxy.port, proxy.user,

and it seems to work (probably user and proxy should be URI

Any thoughts?




Using Ruby 1.9.2, rather than hacking code, this seems to work:

require 'open-uri'
puts open('', :proxy_http_basic_authentication
=> ['http://proxyhost:8080/', 'proxyuser', 'proxypass'] ).readlines

Replace proxyhost with the host name or ip address of your proxy server.
Change 8080 to whatever port it listens on. Replace proxyuser with the
actual user name you log in to, and proxypass with the actual proxy user

I couldn't find this documented anywhere.


Posted via