Sha256: 7e390e149991d30c50b5b037e0916472d5fc191bd9568e2ba25c63909ac2911c
Contents?: true
Size: 1.08 KB
Versions: 15
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true # :markup: markdown module ActionDispatch module Http module FilterRedirect FILTERED = "[FILTERED]" # :nodoc: def filtered_location # :nodoc: if location_filter_match? FILTERED else parameter_filtered_location end end private def location_filters if request request.get_header("action_dispatch.redirect_filter") || [] else [] end end def location_filter_match? location_filters.any? do |filter| if String === filter location.include?(filter) elsif Regexp === filter location.match?(filter) end end end def parameter_filtered_location uri = URI.parse(location) unless uri.query.nil? || uri.query.empty? uri.query.gsub!(FilterParameters::PAIR_RE) do request.parameter_filter.filter($1 => $2).first.join("=") end end uri.to_s rescue URI::Error FILTERED end end end end
Version data entries
15 entries across 15 versions & 2 rubygems