module RemoteIpProxyScrubber
Simplify monkey-patching Rails logging so that it logs the request.remote_ip, not just the ip
Constants
- VERSION
Public Class Methods
filter_middleware()
click to toggle source
Add the following to config/application.rb or conifg/environments/*
config.middleware.insert_before(Rails::Rack::Logger, RemoteIpProxyScrubber.filter_middleware, [ "216.73.93.70/31", # www.google.com "216.73.93.72/31", # www.google.com "17.0.0.0/8", # Apple ])
# File lib/remote_ip_proxy_scrubber.rb, line 13 def filter_middleware require 'remote_ip_proxy_scrubber/filter_proxy_ips' RemoteIpProxyScrubber::Rails4::FilterProxyIPs end
patched_logger()
click to toggle source
Returns a Class to be used a rack middleware, replacing the existing ‘Rails::Rack::Logger`.
config.middleware.insert_before(Rails::Rack::Logger, RemoteIpProxyScrubber.patched_logger) config.middleware.delete(Rails::Rack::Logger)
# File lib/remote_ip_proxy_scrubber.rb, line 25 def patched_logger require 'remote_ip_proxy_scrubber/remote_ip_logger' rails_version = self.rails_version if rails_version >= Gem::Version.new('4.0.0') RemoteIpProxyScrubber::Rails4::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.2.9') RemoteIpProxyScrubber::Rails3_2_9::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.2.0') RemoteIpProxyScrubber::Rails3_2_0::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.0.6') RemoteIpProxyScrubber::Rails3_1::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.0.0') RemoteIpProxyScrubber::Rails3_0::RemoteIPLogger else fail "Sorry, this gem doesn't know how to monkey-patch the Rails logger for Rails #{rails_version} yet." end end
rails_version()
click to toggle source
# File lib/remote_ip_proxy_scrubber.rb, line 45 def rails_version rails_version = Rails.version rescue nil rails_version ||= RAILS_GEM_VERSION rescue nil if rails_version.nil? fail "Unable to determine the current version of Rails" end Gem::Version.new(rails_version) end
Private Instance Methods
filter_middleware()
click to toggle source
Add the following to config/application.rb or conifg/environments/*
config.middleware.insert_before(Rails::Rack::Logger, RemoteIpProxyScrubber.filter_middleware, [ "216.73.93.70/31", # www.google.com "216.73.93.72/31", # www.google.com "17.0.0.0/8", # Apple ])
# File lib/remote_ip_proxy_scrubber.rb, line 13 def filter_middleware require 'remote_ip_proxy_scrubber/filter_proxy_ips' RemoteIpProxyScrubber::Rails4::FilterProxyIPs end
patched_logger()
click to toggle source
Returns a Class to be used a rack middleware, replacing the existing ‘Rails::Rack::Logger`.
config.middleware.insert_before(Rails::Rack::Logger, RemoteIpProxyScrubber.patched_logger) config.middleware.delete(Rails::Rack::Logger)
# File lib/remote_ip_proxy_scrubber.rb, line 25 def patched_logger require 'remote_ip_proxy_scrubber/remote_ip_logger' rails_version = self.rails_version if rails_version >= Gem::Version.new('4.0.0') RemoteIpProxyScrubber::Rails4::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.2.9') RemoteIpProxyScrubber::Rails3_2_9::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.2.0') RemoteIpProxyScrubber::Rails3_2_0::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.0.6') RemoteIpProxyScrubber::Rails3_1::RemoteIPLogger elsif rails_version >= Gem::Version.new('3.0.0') RemoteIpProxyScrubber::Rails3_0::RemoteIPLogger else fail "Sorry, this gem doesn't know how to monkey-patch the Rails logger for Rails #{rails_version} yet." end end
rails_version()
click to toggle source
# File lib/remote_ip_proxy_scrubber.rb, line 45 def rails_version rails_version = Rails.version rescue nil rails_version ||= RAILS_GEM_VERSION rescue nil if rails_version.nil? fail "Unable to determine the current version of Rails" end Gem::Version.new(rails_version) end