%PDF- %PDF-
Direktori : /www/loslex/demo/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/ |
Current File : /www/loslex/demo/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/LaravelRequestFetcher.php |
<?php namespace Sentry\Laravel\Http; use Illuminate\Container\Container; use Illuminate\Support\Collection; use Illuminate\Support\Str; use Psr\Http\Message\ServerRequestInterface; use Sentry\Integration\RequestFetcher; use Sentry\Integration\RequestFetcherInterface; class LaravelRequestFetcher implements RequestFetcherInterface { /** * They key in the container where a PSR-7 instance of the current request could be stored. */ public const CONTAINER_PSR7_INSTANCE_KEY = 'sentry-laravel.psr7.request'; public function fetchRequest(): ?ServerRequestInterface { $container = Container::getInstance(); // If there is no request bound to the container // we are not dealing with a HTTP request and there // is no request to fetch for us so we can exit early. if (!$container->bound('request')) { return null; } if ($container->bound(self::CONTAINER_PSR7_INSTANCE_KEY)) { $request = $container->make(self::CONTAINER_PSR7_INSTANCE_KEY); } else { $request = (new RequestFetcher)->fetchRequest(); } if ($request === null) { return null; } $cookies = new Collection($request->getCookieParams()); // We need to filter out the cookies that are not allowed to be sent to Sentry because they are very sensitive $forbiddenCookies = [config('session.cookie'), 'remember_*']; return $request->withCookieParams( $cookies->map(function ($value, string $key) use ($forbiddenCookies) { if (Str::is($forbiddenCookies, $key)) { return '[Filtered]'; } return $value; })->all() ); } }