[#676] Enforce UTF-8 encodings on the params hash
Contributed by Toshi MARUYAMA
This commit is contained in:
parent
2f4afeeb38
commit
21a45b4e52
|
@ -43,6 +43,24 @@ class ApplicationController < ActionController::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# FIXME: Remove this when all of Rack and Rails have learned how to
|
||||||
|
# properly use encodings
|
||||||
|
before_filter :params_filter
|
||||||
|
def params_filter
|
||||||
|
self.utf8nize!(params) if RUBY_VERSION >= '1.9'
|
||||||
|
end
|
||||||
|
def utf8nize!(obj)
|
||||||
|
if obj.is_a? String
|
||||||
|
obj.respond_to?(:force_encoding) ? obj.force_encoding("UTF-8") : obj
|
||||||
|
elsif obj.is_a? Hash
|
||||||
|
obj.each {|k, v| obj[k] = self.utf8nize!(v)}
|
||||||
|
elsif obj.is_a? Array
|
||||||
|
obj.each {|v| self.utf8nize!(v)}
|
||||||
|
else
|
||||||
|
obj
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
before_filter :user_setup, :check_if_login_required, :set_localization
|
before_filter :user_setup, :check_if_login_required, :set_localization
|
||||||
filter_parameter_logging :password
|
filter_parameter_logging :password
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue