Class: Sentry::RequestInterface
- Defined in:
- lib/sentry/interfaces/request.rb
Constant Summary collapse
- REQUEST_ID_HEADERS =
%w[action_dispatch.request_id HTTP_X_REQUEST_ID].freeze
- CONTENT_HEADERS =
%w[CONTENT_TYPE CONTENT_LENGTH].freeze
- LOWERCASE_PATTERN =
Regex to detect lowercase chars — match? is allocation-free (no MatchData/String)
/[a-z]/.freeze
- MAX_BODY_LIMIT =
See Sentry server default limits at https://github.com/getsentry/sentry/blob/master/src/sentry/conf/server.py
4096 * 4
Instance Attribute Summary collapse
- #cookies ⇒ Hash
- #data ⇒ Hash
- #env ⇒ Hash
- #headers ⇒ Hash
- #method ⇒ String
- #query_string ⇒ String, Hash
- #url ⇒ String
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(env:, data_collection:, rack_env_whitelist:) ⇒ RequestInterface
constructor
A new instance of RequestInterface.
Methods inherited from Interface
Constructor Details
#initialize(env:, data_collection:, rack_env_whitelist:) ⇒ RequestInterface
Returns a new instance of RequestInterface.
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/sentry/interfaces/request.rb', line 43 def initialize(env:, data_collection:, rack_env_whitelist:) env = env.dup request = ::Rack::Request.new(env) query = data_collection.url_query_params.filter(request.GET) rescue nil self.method = request.request_method self.url = request.scheme && request.url.split("?").first self.query_string = query unless query&.empty? self. = data_collection..filter(request., cookie: true) self.data = read_data_from(request) if data_collection.collect_incoming_http_body? self.headers = filter_and_format_headers(env, data_collection.http_headers.request) self.env = filter_and_format_env(env, data_collection.http_headers.request, rack_env_whitelist) end |
Instance Attribute Details
#cookies ⇒ Hash
30 31 32 |
# File 'lib/sentry/interfaces/request.rb', line 30 def end |
#data ⇒ Hash
24 25 26 |
# File 'lib/sentry/interfaces/request.rb', line 24 def data @data end |
#env ⇒ Hash
36 37 38 |
# File 'lib/sentry/interfaces/request.rb', line 36 def env @env end |
#headers ⇒ Hash
33 34 35 |
# File 'lib/sentry/interfaces/request.rb', line 33 def headers @headers end |
#method ⇒ String
21 22 23 |
# File 'lib/sentry/interfaces/request.rb', line 21 def method @method end |
#query_string ⇒ String, Hash
27 28 29 |
# File 'lib/sentry/interfaces/request.rb', line 27 def query_string @query_string end |
#url ⇒ String
18 19 20 |
# File 'lib/sentry/interfaces/request.rb', line 18 def url @url end |
Class Method Details
.rack_3_or_above? ⇒ Boolean
122 123 124 125 126 127 |
# File 'lib/sentry/interfaces/request.rb', line 122 def self.rack_3_or_above? return @rack_3_or_above if defined?(@rack_3_or_above) @rack_3_or_above = defined?(::Rack) && Gem::Version.new(::Rack.release) >= Gem::Version.new("3.0") end |