%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/SetRequestIpMiddleware.php |
<?php
namespace Sentry\Laravel\Http;
use Closure;
use Illuminate\Container\Container;
use Illuminate\Http\Request;
use Sentry\State\HubInterface;
use Sentry\State\Scope;
/**
* This middleware enriches the Sentry scope with the IP address of the request.
* We do this ourself instead of letting the PHP SDK handle this because we want
* the IP from the Laravel request because it takes into account trusted proxies.
*/
class SetRequestIpMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$container = Container::getInstance();
if ($container->bound(HubInterface::class)) {
/** @var \Sentry\State\HubInterface $sentry */
$sentry = $container->make(HubInterface::class);
$client = $sentry->getClient();
if ($client !== null && $client->getOptions()->shouldSendDefaultPii()) {
$sentry->configureScope(static function (Scope $scope) use ($request): void {
$scope->setUser([
'ip_address' => $request->ip(),
]);
});
}
}
return $next($request);
}
}