From da1c6c196d19e68f765e2395da5c90d14f4cdc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Tobias=20de=20Freitas=20Neto?= Date: Fri, 25 Aug 2023 18:38:16 -0400 Subject: [PATCH] =?UTF-8?q?Removendo=20dados=20sens=C3=ADveis=20enviados?= =?UTF-8?q?=20em=20requests=20do=20guzzle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/Observers/LogCaptureObserver.php | 23 +++++++++++++++++++++++ src/config/config.php | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/app/Observers/LogCaptureObserver.php b/src/app/Observers/LogCaptureObserver.php index 9b17064..1ccbfd3 100644 --- a/src/app/Observers/LogCaptureObserver.php +++ b/src/app/Observers/LogCaptureObserver.php @@ -43,13 +43,36 @@ class LogCaptureObserver { $logDataContainer = app(LogDataContainer::class); + $requestBody = $event->request->getBody()->getContents(); + $logDataContainer->addCapturedHttpClientEvent([ 'request' => [ 'method' => $event->request->getMethod(), 'uri' => $event->request->getUri(), 'headers' => $event->request->getHeaders(), + 'body' =>self::hideSensitiveData($requestBody) ], 'options' => $event->options, ]); } + + /** + * @param $content + * @return false|string + */ + private static function hideSensitiveData($content) + { + $data = json_decode($content, true); + + // Define an array of field names that contain sensitive information + $sensitiveFields = explode(',', config('laravel-logs-layer.sensitive_data')); + + foreach ($sensitiveFields as $field) { + if (isset($data[$field])) { + $data[$field] = '*****'; + } + } + + return json_encode($data); + } } \ No newline at end of file diff --git a/src/config/config.php b/src/config/config.php index aef7655..4e9b513 100644 --- a/src/config/config.php +++ b/src/config/config.php @@ -5,9 +5,9 @@ |-------------------------------------------------------------------------- | | Execute the command below do publish the config file -| php artisan vendor:publish --provider="Ae3\LogsLayer\app\Providers\LogsLayerServiceProvider" --tag="config" +| php artisan vendor:publish --provider="Ae3\LaravelLogsLayer\app\Providers\LogsLayerServiceProvider" --tag="config" */ return [ - + 'sensitive_data' => env('LOGS_LAYER_SENSITIVE_DATA', 'password,password_confirmation,token,api_token,api_key,access_token'), ];