aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http/headers.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_dispatch/http/headers.rb')
-rw-r--r--actionpack/lib/action_dispatch/http/headers.rb17
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