Assign a proc to Rack::Request.ip_filter instead of patching method (#28380)
				
					
				
			This commit is contained in:
		@@ -1,13 +1,8 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module Rack
 | 
			
		||||
  class Request
 | 
			
		||||
    def trusted_proxy?(ip)
 | 
			
		||||
      if Rails.application.config.action_dispatch.trusted_proxies.nil?
 | 
			
		||||
        super
 | 
			
		||||
      else
 | 
			
		||||
        Rails.application.config.action_dispatch.trusted_proxies.any? { |proxy| proxy === ip }
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
unless Rails.application.config.action_dispatch.trusted_proxies.nil?
 | 
			
		||||
  # Rack is configured with a default collection of trusted proxies
 | 
			
		||||
  # If Rails has been configured to use a specific list, configure
 | 
			
		||||
  # Rack to use this Proc, which enforces the Rails-configured list.
 | 
			
		||||
  Rack::Request.ip_filter = ->(ip) { Rails.application.config.action_dispatch.trusted_proxies.include?(ip) }
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user