Skip to content
This repository has been archived by the owner on Feb 24, 2021. It is now read-only.

Commit

Permalink
- Add :port to options
Browse files Browse the repository at this point in the history
  • Loading branch information
Bart Teeuwisse committed Jun 3, 2011
1 parent 239e2d4 commit 40c1fcb
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/rack/ssl.rb
Expand Up @@ -18,6 +18,7 @@ def initialize(app, options = {})

@exclude = options[:exclude]
@host = options[:host]
@port = options[:port]
end

def call(env)
Expand Down Expand Up @@ -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)

Expand Down
14 changes: 14 additions & 0 deletions test/test_ssl.rb
Expand Up @@ -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"
Expand Down

0 comments on commit 40c1fcb

Please sign in to comment.