module LinkedRails::Constraints::Whitelist
Public Instance Methods
log_verdict(allowed, request, ip, remote_ip)
click to toggle source
# File lib/linked_rails/constraints/whitelist.rb, line 22 def log_verdict(allowed, request, ip, remote_ip) return if Rails.env.production? verdict = allowed ? 'pass' : 'fail' Rails.logger.debug("[WhitelistConstraint] #{verdict} for #{request.url} by ip: #{ip}, remote ip: #{remote_ip}") end
matches?(request)
click to toggle source
# File lib/linked_rails/constraints/whitelist.rb, line 8 def matches?(request) return true unless LinkedRails.whitelisted_spi_ips ip = request_ip(request.ip) remote_ip = request_ip(request.remote_ip) allowed = [ip, remote_ip].all? do |req_ip| LinkedRails.whitelisted_spi_ips.any? { |allowed_ip| allowed_ip.include?(req_ip) } end log_verdict(allowed, request, ip, remote_ip) allowed end
request_ip(ip)
click to toggle source
# File lib/linked_rails/constraints/whitelist.rb, line 29 def request_ip(ip) return nil unless ip.is_a?(String) && ip.present? IPAddr.new(ip) end