diff options
Diffstat (limited to 'actionpack/lib/action_dispatch/http')
-rw-r--r-- | actionpack/lib/action_dispatch/http/headers.rb | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/actionpack/lib/action_dispatch/http/headers.rb b/actionpack/lib/action_dispatch/http/headers.rb index 3f3f71b280..1574518a16 100644 --- a/actionpack/lib/action_dispatch/http/headers.rb +++ b/actionpack/lib/action_dispatch/http/headers.rb @@ -1,7 +1,7 @@ module ActionDispatch module Http class Headers - NON_PREFIX_VARIABLES = %w( + CGI_VARIABLES = %w( CONTENT_TYPE CONTENT_LENGTH HTTPS AUTH_TYPE GATEWAY_INTERFACE PATH_INFO PATH_TRANSLATED QUERY_STRING @@ -9,7 +9,7 @@ module ActionDispatch REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE ) - HEADER_REGEXP = /\A[A-Za-z-]+\z/ + HTTP_HEADER = /\A[A-Za-z0-9-]+\z/ include Enumerable attr_reader :env @@ -52,16 +52,11 @@ module ActionDispatch private def env_name(key) - if key =~ HEADER_REGEXP - cgi_name(key) - else - key + key = key.to_s + if key =~ HTTP_HEADER + key = key.upcase.tr('-', '_') + key = "HTTP_" + key unless CGI_VARIABLES.include?(key) end - end - - def cgi_name(key) - key = key.upcase.gsub(/-/, '_') - key = "HTTP_#{key}" unless NON_PREFIX_VARIABLES.include?(key) key end end |