|
32 | 32 | let(:appsec_enabled) { true }
|
33 | 33 | let(:tracing_enabled) { true }
|
34 | 34 | let(:appsec_ip_denylist) { nil }
|
| 35 | + let(:appsec_user_id_denylist) { nil } |
35 | 36 | let(:appsec_ruleset) { :recommended }
|
36 | 37 |
|
37 | 38 | let(:crs_942_100) do
|
|
89 | 90 | c.appsec.enabled = appsec_enabled
|
90 | 91 | c.appsec.instrument :rails
|
91 | 92 | c.appsec.ip_denylist = appsec_ip_denylist
|
| 93 | + c.appsec.user_id_denylist = appsec_user_id_denylist |
92 | 94 | c.appsec.ruleset = appsec_ruleset
|
93 | 95 |
|
94 | 96 | # TODO: test with c.appsec.instrument :rack
|
|
118 | 120 | def success
|
119 | 121 | head :ok
|
120 | 122 | end
|
| 123 | + |
| 124 | + def set_user |
| 125 | + Datadog::Kit::Identity.set_user(Datadog::Tracing.active_trace, id: 'blocked-user-id') |
| 126 | + head :ok |
| 127 | + end |
121 | 128 | end
|
122 | 129 | )
|
123 | 130 | end
|
@@ -244,6 +251,7 @@ def success
|
244 | 251 | {
|
245 | 252 | '/success' => 'test#success',
|
246 | 253 | [:post, '/success'] => 'test#success',
|
| 254 | + '/set_user' => 'test#set_user', |
247 | 255 | }
|
248 | 256 | end
|
249 | 257 |
|
@@ -347,6 +355,26 @@ def success
|
347 | 355 | it_behaves_like 'a trace with AppSec tags'
|
348 | 356 | it_behaves_like 'a trace with AppSec events'
|
349 | 357 | end
|
| 358 | + |
| 359 | + context 'with user blocking ID' do |
| 360 | + let(:url) { '/set_user' } |
| 361 | + |
| 362 | + it { is_expected.to be_ok } |
| 363 | + |
| 364 | + it_behaves_like 'a GET 200 span' |
| 365 | + it_behaves_like 'a trace with AppSec tags' |
| 366 | + it_behaves_like 'a trace without AppSec events' |
| 367 | + |
| 368 | + context 'with an event-triggering user ID' do |
| 369 | + let(:appsec_user_id_denylist) { ['blocked-user-id'] } |
| 370 | + |
| 371 | + it { is_expected.to be_forbidden } |
| 372 | + |
| 373 | + it_behaves_like 'a GET 403 span' |
| 374 | + it_behaves_like 'a trace with AppSec tags' |
| 375 | + it_behaves_like 'a trace with AppSec events' |
| 376 | + end |
| 377 | + end |
350 | 378 | end
|
351 | 379 |
|
352 | 380 | describe 'POST request' do
|
|
0 commit comments