Module: ActionDispatch::Http::FilterRedirect
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Defined in: | actionpack/lib/action_dispatch/http/filter_redirect.rb |
Constant Summary
-
FILTERED =
Internal use only
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 8"[FILTERED]"
Instance Attribute Summary
- #location_filter_match? ⇒ Boolean readonly private
Instance Method Summary
- #location_filters private
- #parameter_filtered_location private
- #filtered_location Internal use only
Instance Attribute Details
#location_filter_match? ⇒ Boolean
(readonly, private)
[ GitHub ]
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 27
def location_filter_match? location_filters.any? do |filter| if String === filter location.include?(filter) elsif Regexp === filter location.match?(filter) end end end
Instance Method Details
#filtered_location
This method is for internal use only.
[ GitHub ]
# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 10
def filtered_location # :nodoc: if location_filter_match? FILTERED else parameter_filtered_location end end
#location_filters (private)
[ GitHub ]# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 19
def location_filters if request request.get_header("action_dispatch.redirect_filter") || [] else [] end end
#parameter_filtered_location (private)
[ GitHub ]# File 'actionpack/lib/action_dispatch/http/filter_redirect.rb', line 37
def parameter_filtered_location uri = URI.parse(location) unless uri.query.nil? || uri.query.empty? parts = uri.query.split(/([&;])/) filtered_parts = parts.map do |part| if part.include?("=") key, value = part.split("=", 2) request.parameter_filter.filter(key => value).first.join("=") else part end end uri.query = filtered_parts.join("") end uri.to_s rescue URI::Error FILTERED end