/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @throws \Symfony\Component\HttpKernel\Exception\HttpException * * @return mixed */ public function handle($request, Closure $next) { // Set trusted header names foreach ($this->getTrustedHeaders() as $headerKey => $headerName) { $request->setTrustedHeaderName($headerKey, $headerName); } $request->setTrustedProxies($this->getTrustedProxies($request->getClientIps())); return $next($request); }
/** * Sets the name for trusted headers. * * The following header keys are supported: * * * Request::HEADER_CLIENT_IP: defaults to X-Forwarded-For (see getClientIp()) * * Request::HEADER_CLIENT_HOST: defaults to X-Forwarded-Host (see getHost()) * * Request::HEADER_CLIENT_PORT: defaults to X-Forwarded-Port (see getPort()) * * Request::HEADER_CLIENT_PROTO: defaults to X-Forwarded-Proto (see getScheme() and isSecure()) * * Setting an empty value allows to disable the trusted header for the given key. * * @param string $key The header key * @param string $value The header name * @throws \InvalidArgumentException * @static */ public static function setTrustedHeaderName($key, $value) { //Method inherited from \Symfony\Component\HttpFoundation\Request return \Illuminate\Http\Request::setTrustedHeaderName($key, $value); }