Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Also allow the SSL port to be specified #7

Merged
merged 1 commit into from

3 participants

@bartt

Hi Josh,

would you be so kind to merge this pull request so that the port of the SSL redirect can be specified?

Thanks,
=bartt

@josh josh merged commit 6a6c15d into from
@mackuba

Could you release a new version to RubyGems with this update?

@bartt

Has already been released. Latest version is 1.4.2.

@mackuba
@bartt

My bad. @josh Is the one to release the gem.

@josh josh referenced this pull request from a commit
@josh Revert "Merge pull request #7 from bartt/master"
This reverts commit 6a6c15d, reversing
changes made to 239e2d4.
e07a9de
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Jun 3, 2011
  1. - Add :port to options

    Bart Teeuwisse authored
This page is out of date. Refresh to see the latest.
Showing with 16 additions and 0 deletions.
  1. +2 −0  lib/rack/ssl.rb
  2. +14 −0 test/test_ssl.rb
View
2  lib/rack/ssl.rb
@@ -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
14 test/test_ssl.rb
@@ -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"
Something went wrong with that request. Please try again.