Chris@0: httpKernel = $http_kernel; Chris@0: $this->settings = $settings; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = TRUE) { Chris@0: // Initialize proxy settings. Chris@0: static::setSettingsOnRequest($request, $this->settings); Chris@0: return $this->httpKernel->handle($request, $type, $catch); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Sets reverse proxy settings on Request object. Chris@0: * Chris@0: * @param \Symfony\Component\HttpFoundation\Request $request Chris@0: * A Request instance. Chris@0: * @param \Drupal\Core\Site\Settings $settings Chris@0: * The site settings. Chris@0: */ Chris@0: public static function setSettingsOnRequest(Request $request, Settings $settings) { Chris@0: // Initialize proxy settings. Chris@0: if ($settings->get('reverse_proxy', FALSE)) { Chris@0: $ip_header = $settings->get('reverse_proxy_header', 'X_FORWARDED_FOR'); Chris@0: $request::setTrustedHeaderName($request::HEADER_CLIENT_IP, $ip_header); Chris@0: Chris@0: $proto_header = $settings->get('reverse_proxy_proto_header', 'X_FORWARDED_PROTO'); Chris@0: $request::setTrustedHeaderName($request::HEADER_CLIENT_PROTO, $proto_header); Chris@0: Chris@0: $host_header = $settings->get('reverse_proxy_host_header', 'X_FORWARDED_HOST'); Chris@0: $request::setTrustedHeaderName($request::HEADER_CLIENT_HOST, $host_header); Chris@0: Chris@0: $port_header = $settings->get('reverse_proxy_port_header', 'X_FORWARDED_PORT'); Chris@0: $request::setTrustedHeaderName($request::HEADER_CLIENT_PORT, $port_header); Chris@0: Chris@0: $forwarded_header = $settings->get('reverse_proxy_forwarded_header', 'FORWARDED'); Chris@0: $request::setTrustedHeaderName($request::HEADER_FORWARDED, $forwarded_header); Chris@0: Chris@0: $proxies = $settings->get('reverse_proxy_addresses', []); Chris@0: if (count($proxies) > 0) { Chris@0: $request::setTrustedProxies($proxies); Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@0: }