Class: ActionController::UrlRewriter

Inherits:
Object
  • Object
show all
Defined in:
lib/url_rewriter.rb

Instance Method Summary collapse

Instance Method Details

#rewrite_with_non_ssl_host(options) ⇒ Object

if full URL is requested for http and we’ve been told to use a non-ssl host override, then use it



36
37
38
39
40
41
42
43
# File 'lib/url_rewriter.rb', line 36

def rewrite_with_non_ssl_host(options)
  if !options[:only_path] && !SslRequirement.non_ssl_host.nil?
    if !(/^https/ =~ (options[:protocol] || @request.protocol))
      options.merge! :host => SslRequirement.non_ssl_host
    end
  end
  rewrite_without_non_ssl_host(options)
end

#rewrite_with_secure_option(options = {}) ⇒ Object

Add a secure option to the rewrite method.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/url_rewriter.rb', line 7

def rewrite_with_secure_option(options = {})
  secure = options.delete(:secure)

  # if secure && ssl check is not disabled, convert to full url with https
  if !secure.nil? && !SslRequirement.disable_ssl_check?
    if secure == true || secure == 1 || secure.to_s.downcase == "true"
      options.merge!({
        :only_path => false,
        :protocol => 'https'
      })

      # if we've been told to use different host for ssl, use it
      unless SslRequirement.ssl_host.nil?
        options.merge! :host => SslRequirement.ssl_host
      end

    # make it non-ssl and use specified options
    else
      options.merge!({
        :protocol => 'http'
      })
    end
  end

  rewrite_without_secure_option(options)
end