about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-03-05 03:48:44 +0000
committerEric Wong <normalperson@yhbt.net>2013-03-05 04:04:58 +0000
commit16c7bcebb9c0ddc1e94bd313fa460efe4884bbe0 (patch)
treebfefc963a18bb0c7b8c2cc93113b46f92ec88f09
parent8bf0815a595ee755d91ca013572dd7911844d5db (diff)
downloadlocal-openid-16c7bcebb9c0ddc1e94bd313fa460efe4884bbe0.tar.gz
use Rack::Request#base_url for server_root
Nathan Paul Simons reported the need to include the port for
certain consumers.  Since we don't want to blindly add the port
for users on standard HTTP/HTTPS ports, we can use
Rack::Request#base_url to generate the URL for us.

Rack::Request#base_url is available since Rack 1.3.0
-rw-r--r--lib/local_openid.rb5
-rw-r--r--local-openid.gemspec1
2 files changed, 2 insertions, 4 deletions
diff --git a/lib/local_openid.rb b/lib/local_openid.rb
index ab342a9..0edbf37 100644
--- a/lib/local_openid.rb
+++ b/lib/local_openid.rb
@@ -160,11 +160,8 @@ class LocalOpenID < Sinatra::Base
     finalize_response(oidresp)
   end
 
-  # we're the provider for exactly one identity.  However, we do rely on
-  # being proxied and being hit with an appropriate HTTP Host: header.
-  # Don't expect OpenID consumers to handle port != 80.
   def server_root
-    "http://#{request.host}/"
+    "#{request.base_url}/"
   end
 
   def server
diff --git a/local-openid.gemspec b/local-openid.gemspec
index 8b129db..da872b6 100644
--- a/local-openid.gemspec
+++ b/local-openid.gemspec
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
   s.summary = summary
   s.rdoc_options = rdoc_options
   s.rubyforge_project = %q{qrp}
+  s.add_dependency(%q<rack>, ["~> 1.3"])
   s.add_dependency(%q<sinatra>, ["~> 1.0"])
   s.add_dependency(%q<ruby-openid>, ["~> 2.1.7"])
   # s.licenses = %w(AGPLv3) # accessor not compatible with older RubyGems