Skip to content

Commit bcaf86a

Browse files
committed
Remove reactive engine from AppSec Rails instrumentation
1 parent c3d5cbb commit bcaf86a

File tree

4 files changed

+20
-171
lines changed

4 files changed

+20
-171
lines changed

lib/datadog/appsec/contrib/rails/gateway/watcher.rb

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# frozen_string_literal: true
22

33
require_relative '../../../instrumentation/gateway'
4-
require_relative '../../../reactive/engine'
5-
require_relative '../reactive/action'
64
require_relative '../../../event'
75

86
module Datadog
@@ -21,31 +19,28 @@ def watch
2119

2220
def watch_request_action(gateway = Instrumentation.gateway)
2321
gateway.watch('rails.request.action', :appsec) do |stack, gateway_request|
24-
event = nil
2522
context = gateway_request.env[Datadog::AppSec::Ext::CONTEXT_KEY]
26-
engine = AppSec::Reactive::Engine.new
27-
28-
Rails::Reactive::Action.subscribe(engine, context) do |result|
29-
if result.match?
30-
# TODO: should this hash be an Event instance instead?
31-
event = {
32-
waf_result: result,
33-
trace: context.trace,
34-
span: context.span,
35-
request: gateway_request,
36-
actions: result.actions
37-
}
38-
39-
# We want to keep the trace in case of security event
40-
context.trace.keep! if context.trace
41-
Datadog::AppSec::Event.tag_and_keep!(context, result)
42-
context.events << event
43-
44-
Datadog::AppSec::ActionsHandler.handle(result.actions)
45-
end
46-
end
4723

48-
Rails::Reactive::Action.publish(engine, gateway_request)
24+
persistent_data = {
25+
'server.request.body' => gateway_request.parsed_body,
26+
'server.request.path_params' => gateway_request.route_params
27+
}
28+
29+
result = context.run_waf(persistent_data, {}, Datadog.configuration.appsec.waf_timeout)
30+
31+
if result.match?
32+
Datadog::AppSec::Event.tag_and_keep!(context, result)
33+
34+
context.events << {
35+
waf_result: result,
36+
trace: context.trace,
37+
span: context.span,
38+
request: gateway_request,
39+
actions: result.actions
40+
}
41+
42+
Datadog::AppSec::ActionsHandler.handle(result.actions)
43+
end
4944

5045
stack.call(gateway_request.request)
5146
end

lib/datadog/appsec/contrib/rails/reactive/action.rb

Lines changed: 0 additions & 53 deletions
This file was deleted.

sig/datadog/appsec/contrib/rails/reactive/action.rbs

Lines changed: 0 additions & 17 deletions
This file was deleted.

spec/datadog/appsec/contrib/rails/reactive/action_spec.rb

Lines changed: 0 additions & 76 deletions
This file was deleted.

0 commit comments

Comments
 (0)