Module: Crawlscope::RequestHeaders

Defined in:
lib/crawlscope/request_headers.rb

Constant Summary collapse

PROFILE_TOKEN =
"X-Profile-Token"

Class Method Summary collapse

Class Method Details

.add_profile_token(headers, url:, base_url:, profile_token:) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/crawlscope/request_headers.rb', line 11

def add_profile_token(headers, url:, base_url:, profile_token:)
  return headers if profile_token.to_s.empty?
  return headers unless same_origin?(url, base_url: base_url)

  headers[PROFILE_TOKEN] = profile_token
  headers
end

.same_origin?(url, base_url:) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
31
32
# File 'lib/crawlscope/request_headers.rb', line 25

def same_origin?(url, base_url:)
  url_uri = URI.join(base_url.to_s, url.to_s)
  base_uri = URI.parse(base_url.to_s)

  [url_uri.scheme, url_uri.host, url_uri.port] == [base_uri.scheme, base_uri.host, base_uri.port]
rescue URI::Error
  false
end

.strip_profile_token_on_cross_origin_redirect(response_env, request_env) ⇒ Object



19
20
21
22
23
# File 'lib/crawlscope/request_headers.rb', line 19

def strip_profile_token_on_cross_origin_redirect(response_env, request_env)
  return if same_origin?(request_env[:url], base_url: response_env[:url])

  request_env[:request_headers].delete(PROFILE_TOKEN)
end