Class: StandardId::HttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/standard_id/http_client.rb

Defined Under Namespace

Classes: SsrfError

Constant Summary collapse

OPEN_TIMEOUT =
5
READ_TIMEOUT =
10
BLOCKED_IP_RANGES =
[
  IPAddr.new("10.0.0.0/8"),
  IPAddr.new("172.16.0.0/12"),
  IPAddr.new("192.168.0.0/16"),
  IPAddr.new("127.0.0.0/8"),
  IPAddr.new("169.254.0.0/16"),
  IPAddr.new("0.0.0.0/8"),
  IPAddr.new("::1/128"),
  IPAddr.new("fc00::/7"),
  IPAddr.new("fe80::/10")
].freeze

Class Method Summary collapse

Class Method Details

.get_with_bearer(endpoint, access_token) ⇒ Object



34
35
36
37
38
39
# File 'lib/standard_id/http_client.rb', line 34

def get_with_bearer(endpoint, access_token)
  uri, resolved_ip = validate_url!(endpoint)
  request = Net::HTTP::Get.new(uri)
  request["Authorization"] = "Bearer #{access_token}"
  start_connection(uri, resolved_ip:) { |http| http.request(request) }
end

.post_form(endpoint, params) ⇒ Object



27
28
29
30
31
32
# File 'lib/standard_id/http_client.rb', line 27

def post_form(endpoint, params)
  uri, resolved_ip = validate_url!(endpoint)
  request = Net::HTTP::Post.new(uri)
  request.set_form_data(params)
  start_connection(uri, resolved_ip:) { |http| http.request(request) }
end