lib/web_console/request.rb in web-console-3.5.1 vs lib/web_console/request.rb in web-console-3.6.0
- old
+ new
@@ -1,14 +1,16 @@
+# frozen_string_literal: true
+
module WebConsole
# Web Console tailored request object.
class Request < ActionDispatch::Request
# Configurable set of whitelisted networks.
cattr_accessor :whitelisted_ips
@@whitelisted_ips = Whitelist.new
# Define a vendor MIME type. We can call it using Mime[:web_console_v2].
- Mime::Type.register 'application/vnd.web-console.v2', :web_console_v2
+ Mime::Type.register "application/vnd.web-console.v2", :web_console_v2
# Returns whether a request came from a whitelisted IP.
#
# For a request to hit Web Console features, it needs to come from a white
# listed IP.
@@ -17,9 +19,11 @@
end
# Determines the remote IP using our much stricter whitelist.
def strict_remote_ip
GetSecureIp.new(self, whitelisted_ips).to_s
+ rescue ActionDispatch::RemoteIp::IpSpoofAttackError
+ "[Spoofed]"
end
# Returns whether the request is acceptable.
def acceptable?
xhr? && accepts.any? { |mime| Mime[:web_console_v2] == mime }