Module: Datadog::AppSec::Contrib::Devise::Patches::SigninTrackingPatch
- Defined in:
- lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb
Overview
A patch for Devise::Authenticatable strategy with tracking functionality
Instance Method Summary collapse
Instance Method Details
#validate(resource, &block) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb', line 14 def validate(resource, &block) result = super return result unless AppSec.enabled? return result if @_datadog_appsec_skip_track_login_event return result unless Configuration.auto_user_instrumentation_enabled? return result unless AppSec.active_context context = AppSec.active_context if context.trace.nil? || context.span.nil? Datadog.logger.debug { 'AppSec: unable to track signin events, due to missing trace or span' } return result end context.trace.keep! if result record_successful_signin(context, resource) Instrumentation.gateway.push('appsec.events.user_lifecycle', Ext::EVENT_LOGIN_SUCCESS) return result end record_failed_signin(context, resource) Instrumentation.gateway.push('appsec.events.user_lifecycle', Ext::EVENT_LOGIN_FAILURE) result end |