Permalink
Browse files

- Add :port to options

  • Loading branch information...
Bart Teeuwisse
Bart Teeuwisse committed Jun 3, 2011
1 parent 239e2d4 commit 40c1fcbe102e4b9e19ef23425ef1c42df6a34610
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 40c1fcb

Please sign in to comment.