diff --git a/Gemfile.lock b/Gemfile.lock index 08d427d..04812bc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - rack-reverse-proxy (0.4.1) + rack-reverse-proxy (0.4.4) rack (>= 1.0.0) GEM @@ -22,7 +22,7 @@ PLATFORMS ruby DEPENDENCIES - bundler (~> 1.0.15) + bundler (~> 1.2.3) rack-reverse-proxy! rack-test (~> 0.5.7) rake (~> 0.8.7) diff --git a/lib/rack/reverse_proxy.rb b/lib/rack/reverse_proxy.rb index ddadd3f..78aeadc 100644 --- a/lib/rack/reverse_proxy.rb +++ b/lib/rack/reverse_proxy.rb @@ -20,9 +20,10 @@ def call(env) headers = Rack::Utils::HeaderHash.new env.each { |key, value| if key =~ /HTTP_(.*)/ - headers[$1] = value + headers[$1.gsub('_', '-')] = value end } + debugger headers['HOST'] = uri.host if all_opts[:preserve_host] headers['X-Forwarded-Host'] = rackreq.host if all_opts[:x_forwarded_host] diff --git a/rack-reverse-proxy.gemspec b/rack-reverse-proxy.gemspec index 2fbd435..b4437f4 100644 --- a/rack-reverse-proxy.gemspec +++ b/rack-reverse-proxy.gemspec @@ -33,7 +33,7 @@ Gem::Specification.new do |s| ] s.add_development_dependency "rspec", "~> 1.3.2" - s.add_development_dependency "bundler", "~> 1.0.15" + s.add_development_dependency "bundler", "~> 1.2.3" s.add_development_dependency "rake", "~> 0.8.7" s.add_development_dependency "rack-test", "~> 0.5.7" s.add_development_dependency "webmock", "~> 1.5.0" diff --git a/spec/rack/reverse_proxy_spec.rb b/spec/rack/reverse_proxy_spec.rb index 19cf8c2..96b650c 100644 --- a/spec/rack/reverse_proxy_spec.rb +++ b/spec/rack/reverse_proxy_spec.rb @@ -62,6 +62,13 @@ def app a_request(:get, 'http://example.com/test/stuff').with(:headers => {'X-Forwarded-Host' => 'example.org'}).should have_been_made end + it "should pass the HTTP_USER_AGENT to the proxied server" do + stub_request(:any, 'example.com/test/stuff') + get '/test/stuff', nil, { 'HTTP_USER_AGENT' => 'test agent' } + a_request(:get, 'http://example.com/test/stuff').with(:headers => {'User-Agent' => 'test agent'}).should have_been_made + end + + describe "with preserve host turned off" do def app Rack::ReverseProxy.new(dummy_app) do