Permalink
Browse files

Merge pull request #7 from bartt/master

Also allow the SSL port to be specified
  • Loading branch information...
2 parents 239e2d4 + 40c1fcb commit 6a6c15dc130c5e2c8c797984972f3f3346d7285d @josh josh committed Jun 10, 2011
Showing with 16 additions and 0 deletions.
  1. +2 −0 lib/rack/ssl.rb
  2. +14 −0 test/test_ssl.rb
View
@@ -18,6 +18,7 @@ def initialize(app, options = {})
@exclude = options[:exclude]
@host = options[:host]
+ @port = options[:port]
end
def call(env)
@@ -50,6 +51,7 @@ def redirect_to_https(env)
url = URI(req.url)
url.scheme = "https"
url.host = @host if @host
+ url.port = @port if @port
headers = hsts_headers.merge('Content-Type' => 'text/html',
'Location' => url.to_s)
View
@@ -124,6 +124,20 @@ def test_redirect_to_host
last_response.headers['Location']
end
+ def test_redirect_to_port
+ self.app = Rack::SSL.new(default_app, :port => 8443)
+ get "http://example.org/path?key=value"
+ assert_equal "https://example.org:8443/path?key=value",
+ last_response.headers['Location']
+ end
+
+ def test_redirect_to_host_and_port
+ self.app = Rack::SSL.new(default_app, :host => "ssl.example.org", :port => 8443)
+ get "http://example.org/path?key=value"
+ assert_equal "https://ssl.example.org:8443/path?key=value",
+ last_response.headers['Location']
+ end
+
def test_redirect_to_secure_host_when_on_subdomain
self.app = Rack::SSL.new(default_app, :host => "ssl.example.org")
get "http://ssl.example.org/path?key=value"

0 comments on commit 6a6c15d

Please sign in to comment.