Project

General

Profile

Download (608 Bytes) Statistics
| Branch: | Tag: | Revision:
module Foreman
class ForceSsl
UNATTENTED_PATHS = %r{^/(unattended|userdata)/}

def initialize(request)
@request = request
end

def allows_http?
!requires_ssl?
end

def requires_ssl?
unattended_path? ? unattended_ssl? : true
end

private

def unattended_path?
@request.path_info.match?(UNATTENTED_PATHS)
end

def unattended_ssl?
unattended_preview? || URI.parse(Setting[:unattended_url]).scheme == 'https'
end

def unattended_preview?
@request.params.key?('spoof') || @request.params.key?('hostname')
end
end
end
(5-5/11)