module ActionDispatch::Http::FilterRedirect

Private Instance Methods

location_filter_match?() click to toggle source
# File 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
location_filters() click to toggle source
# File 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() click to toggle source
# File 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