From c993b6ae47e72c8c07efb81826c08d3d54f65069 Mon Sep 17 00:00:00 2001 From: Alejandro Estringana Ruiz Date: Thu, 28 Mar 2024 12:35:56 +0100 Subject: [PATCH] Make Laravel appsec login success event more accurate (#2600) --- .../Laravel/LaravelIntegration.php | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Integrations/Integrations/Laravel/LaravelIntegration.php b/src/Integrations/Integrations/Laravel/LaravelIntegration.php index 16f335f853..04c6ed60da 100644 --- a/src/Integrations/Integrations/Laravel/LaravelIntegration.php +++ b/src/Integrations/Integrations/Laravel/LaravelIntegration.php @@ -357,27 +357,27 @@ function ($This, $scope, $args, $loginSuccess) use ($integration) { // Used by Laravel >= 5.0 \DDTrace\hook_method( - 'Illuminate\Auth\SessionGuard', - 'setUser', + 'Illuminate\Auth\Events\Authenticated', + '__construct', function ($This, $scope, $args) use ($integration) { $authClass = 'Illuminate\Contracts\Auth\Authenticatable'; if ( !function_exists('\datadog\appsec\track_user_login_success_event') || - !isset($args[0]) || - !$args[0] || - !($args[0] instanceof $authClass) + !isset($args[1]) || + !$args[1] || + !($args[1] instanceof $authClass) ) { return; } $metadata = []; - if (isset($args[0]['name'])) { - $metadata['name'] = $args[0]['name']; + if (isset($args[1]['name'])) { + $metadata['name'] = $args[1]['name']; } - if (isset($args[0]['email'])) { - $metadata['email'] = $args[0]['email']; + if (isset($args[1]['email'])) { + $metadata['email'] = $args[1]['email']; } \datadog\appsec\track_user_login_success_event( - \method_exists($args[0], 'getAuthIdentifier') ? $args[0]->getAuthIdentifier() : '', + \method_exists($args[1], 'getAuthIdentifier') ? $args[1]->getAuthIdentifier() : '', $metadata, true ); @@ -387,7 +387,7 @@ function ($This, $scope, $args) use ($integration) { // Used by Laravel < 5.0 \DDTrace\hook_method( 'Illuminate\Auth\Guard', - 'setUser', + 'login', function ($This, $scope, $args) use ($integration) { $authClass = 'Illuminate\Auth\UserInterface'; if (