Skip to content

Commit e5a8edd

Browse files
committed
Change APISecurity::Sampler#sample? to return false on 404
1 parent f1c91e4 commit e5a8edd

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/datadog/appsec/api_security/sampler.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def initialize(sample_delay)
4343

4444
def sample?(request, response)
4545
return true if @sample_delay_seconds.zero?
46+
return false if response.status == 404
4647

4748
key = Zlib.crc32("#{request.request_method}#{RouteExtractor.route_pattern(request)}#{response.status}")
4849
current_timestamp = Core::Utils::Time.now.to_i

spec/datadog/appsec/api_security/sampler_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@
7474
end
7575
end
7676

77+
context 'when response status is 404' do
78+
let(:response) { double('Rack::Response', status: 404) }
79+
80+
it 'always returns false' do
81+
3.times do
82+
expect(sampler.sample?(request, response)).to be(false)
83+
end
84+
end
85+
end
86+
7787
context 'when sampling for the first time' do
7888
it { expect(sampler.sample?(request, response)).to be(true) }
7989
end

0 commit comments

Comments
 (0)