module HTTPX::Plugins::SsrfFilter::InstanceMethods

  1. lib/httpx/plugins/ssrf_filter.rb

Methods

Public Instance

  1. send_requests

Public Instance methods

send_requests(*requests)
[show source]
    # File lib/httpx/plugins/ssrf_filter.rb
112 def send_requests(*requests)
113   responses = requests.map do |request|
114     next if @options.allowed_schemes.include?(request.uri.scheme)
115 
116     error = ServerSideRequestForgeryError.new("#{request.uri} URI scheme not allowed")
117     error.set_backtrace(caller)
118     response = ErrorResponse.new(request, error)
119     request.response = response
120     request.emit_response(response)
121     response
122   end
123   allowed_requests = requests.select { |req| responses[requests.index(req)].nil? }
124   allowed_responses = super(*allowed_requests)
125   allowed_responses.each_with_index do |res, idx|
126     req = allowed_requests[idx]
127     responses[requests.index(req)] = res
128   end
129 
130   responses
131 end