Assign a proc to `Rack::Request.ip_filter` instead of patching method (#28380)

This commit is contained in:
Matt Jankowski 2023-12-15 09:33:56 -05:00 committed by GitHub
parent db897eaa5a
commit 1ee8d1e50e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 10 deletions

View File

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