getPort() public method

This method can read the client port from the "X-Forwarded-Port" header when trusted proxies were set via "setTrustedProxies()". The "X-Forwarded-Port" header must contain the client port. If your reverse proxy uses a different header name than "X-Forwarded-Port", configure it via "setTrustedHeaderName()" with the "client-port" key.
public getPort ( ) : string
return string
Example #1
0
 public function __construct($routes, Request $request, EventDispatcher $dispatcher, ControllerResolver $resolver)
 {
     $this->deflRes = new NodeResponse();
     $this->context = new RequestContext($request->getBaseUrl(), $request->getMethod(), $request->getHost(), $request->getScheme(), $request->getPort(), $request->getPort());
     $this->matcher = new UrlMatcher($routes, $this->context);
     parent::__construct($dispatcher, $resolver);
 }
Example #2
0
 public function githubAction(Application $app, Request $request)
 {
     $clientID = getenv('GITHUB_API_KEY');
     $clientSecret = getenv('GITHUB_API_SECRET');
     $code = $request->query->get('code');
     $redirectUri = $request->getScheme() . '://' . $request->getHost();
     if (80 != $request->getPort()) {
         $redirectUri .= ':' . $request->getPort();
     }
     $redirectUri .= '/auth/github';
     $provider = new Github(['clientId' => $clientID, 'clientSecret' => $clientSecret, 'redirectUri' => $redirectUri, 'scopes' => ['user:email']]);
     if (empty($code)) {
         $authUrl = $provider->getAuthorizationUrl();
         $app['session']->set('oauth2state', $provider->state);
         return $app->redirect($authUrl);
     } else {
         $token = $provider->getAccessToken('authorization_code', ['code' => $code]);
         $userDetails = $provider->getUserDetails($token);
         try {
             $user = $app['user.manager']->fetchUserByGithubUid($userDetails->uid);
         } catch (UserNotFoundException $exception) {
             $email = null;
             foreach ($provider->getUserEmails($token) as $providerEmail) {
                 if ($providerEmail->primary) {
                     $email = $providerEmail->email;
                     break;
                 }
             }
             $user = $app['user.manager']->createUser(['email' => $email, 'roles' => ['ROLE_USER'], 'name' => $userDetails->name, 'githubUid' => $userDetails->uid]);
             $app['user.manager']->saveUser($user);
         }
         $app['session']->set('user', $user);
         return $app->redirect($app['url_generator']->generate('account.profile'));
     }
 }
Example #3
0
 public function fromRequest(Request $request)
 {
     $this->setBaseUrl($request->getBaseUrl());
     $this->setMethod($request->getMethod());
     $this->setHost($request->getHost());
     $this->setScheme($request->getScheme());
     $this->setHttpPort($request->isSecure() ? $this->httpPort : $request->getPort());
     $this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->httpsPort);
 }
Example #4
0
 /**
  * Sets all needed values from the request.
  *
  * @param Request $request A request to get values from.
  */
 public function setRequest(Request $request)
 {
     $this->setScheme($request->getScheme());
     $this->setHost($request->getHost());
     $this->setBasePath($request->getBasePath());
     if ($request->isSecure()) {
         $this->setHttpsPort($request->getPort());
     } else {
         $this->setHttpPort($request->getPort());
     }
 }
 /**
  * Updates the RequestContext info based on a HttpFoundation Request.
  *
  * @param Request $request A Request instance
  */
 public function fromRequest(Request $request)
 {
     $this->setBaseUrl($request->getBaseUrl());
     $this->setPathInfo($request->getPathInfo());
     $this->setMethod($request->getMethod());
     $this->setHost($request->getHost());
     $this->setScheme($request->getScheme());
     $this->setHttpPort($request->isSecure() ? $this->httpPort : $request->getPort());
     $this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->httpsPort);
     $this->setQueryString($request->server->get('QUERY_STRING', ''));
 }
 protected function initializeRequestAttributes(Request $request, $master)
 {
     if ($master) {
         // set the context even if the parsing does not need to be done
         // to have correct link generation
         $this->router->setContext(array('base_url' => $request->getBaseUrl(), 'method' => $request->getMethod(), 'host' => $request->getHost(), 'port' => $request->getPort(), 'is_secure' => $request->isSecure()));
     }
     if ($request->attributes->has('_controller')) {
         // routing is already done
         return;
     }
     // add attributes based on the path info (routing)
     try {
         $parameters = $this->router->match($request->getPathInfo());
         if (null !== $this->logger) {
             $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], json_encode($parameters)));
         }
         $request->attributes->add($parameters);
         if ($locale = $request->attributes->get('_locale')) {
             $request->getSession()->setLocale($locale);
         }
     } catch (NotFoundException $e) {
         $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo());
         if (null !== $this->logger) {
             $this->logger->err($message);
         }
         throw new NotFoundHttpException($message, $e);
     } catch (MethodNotAllowedException $e) {
         $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), strtoupper(implode(', ', $e->getAllowedMethods())));
         if (null !== $this->logger) {
             $this->logger->err($message);
         }
         throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
     }
 }
Example #7
0
 /**
  * Add the port to the domain if necessary.
  *
  * @param  string  $domain
  * @return string
  */
 protected function addPortToDomain($domain)
 {
     if ($this->request->getPort() == '80') {
         return $domain;
     } else {
         return $domain .= ':' . $this->request->getPort();
     }
 }
 /**
  * Add the port to the domain if necessary.
  *
  * @param  string  $domain
  * @return string
  */
 protected function addPortToDomain($domain)
 {
     if (in_array($this->request->getPort(), array('80', '443'))) {
         return $domain;
     } else {
         return $domain .= ':' . $this->request->getPort();
     }
 }
Example #9
0
 public function isUrlLocal($link)
 {
     if (!$this->request) {
         return false;
     }
     $parts = parse_url($link);
     $isLocal = true;
     if (!empty($parts['host']) && $parts['host'] !== $this->request->getHost()) {
         $isLocal = false;
     } elseif (!empty($parts['port']) && $parts['port'] !== $this->request->getPort()) {
         $isLocal = false;
     } elseif (!empty($parts['scheme']) && $this->request->isSecure() && $parts['scheme'] !== 'https') {
         // going out from secure connection to insecure page on same domain is not local
         $isLocal = false;
     }
     return $isLocal;
 }
 public function createContexts(Request $request)
 {
     $map = array('request_method' => $request->getMethod(), 'request_uri' => $request->getRequestUri(), 'request_route' => $request->attributes->get('_route'), 'request_host' => $request->getHost(), 'request_port' => $request->getPort(), 'request_scheme' => $request->getScheme(), 'request_client_ip' => $request->getClientIp(), 'request_content_type' => $request->getContentType(), 'request_acceptable_content_types' => $request->getAcceptableContentTypes(), 'request_etags' => $request->getETags(), 'request_charsets' => $request->getCharsets(), 'request_languages' => $request->getLanguages(), 'request_locale' => $request->getLocale(), 'request_auth_user' => $request->getUser(), 'request_auth_has_password' => !is_null($request->getPassword()));
     // Attributes from newer versions.
     if (method_exists($request, 'getEncodings')) {
         $map['request_encodings'] = $request->getEncodings();
     }
     if (method_exists($request, 'getClientIps')) {
         $map['request_client_ips'] = $request->getClientIps();
     }
     return $map;
 }
Example #11
0
 /**
  * {@inheritdoc}
  */
 public function determineAccessTokenInHeader(Request $request)
 {
     if ($request->headers->has('Authorization') === false) {
         return;
     }
     $header = $request->headers->get('Authorization');
     if (substr($header, 0, 4) !== 'MAC ') {
         return;
     }
     // Find all the parameters expressed in the header
     $paramsRaw = explode(',', substr($header, 4));
     $params = new ParameterBag();
     array_map(function ($param) use(&$params) {
         $param = trim($param);
         preg_match_all('/([a-zA-Z]*)="([\\w=]*)"/', $param, $matches);
         // @codeCoverageIgnoreStart
         if (count($matches) !== 3) {
             return;
         }
         // @codeCoverageIgnoreEnd
         $key = reset($matches[1]);
         $value = trim(reset($matches[2]));
         if (empty($value)) {
             return;
         }
         $params->set($key, $value);
     }, $paramsRaw);
     // Validate parameters
     if ($params->has('id') === false || $params->has('ts') === false || $params->has('nonce') === false || $params->has('mac') === false) {
         return;
     }
     if ((int) $params->get('ts') !== time()) {
         return;
     }
     $accessToken = $params->get('id');
     $timestamp = (int) $params->get('ts');
     $nonce = $params->get('nonce');
     $signature = $params->get('mac');
     // Try to find the MAC key for the access token
     $macKey = $this->server->getMacStorage()->getByAccessToken($accessToken);
     if ($macKey === null) {
         return;
     }
     // Calculate and compare the signature
     $calculatedSignatureParts = [$timestamp, $nonce, strtoupper($request->getMethod()), $request->getUri(), $request->getHost(), $request->getPort()];
     if ($params->has('ext')) {
         $calculatedSignatureParts[] = $params->get('ext');
     }
     $calculatedSignature = base64_encode(hash_hmac('sha256', implode("\n", $calculatedSignatureParts), $macKey));
     // Return the access token if the signature matches
     return $this->hash_equals($calculatedSignature, $signature) ? $accessToken : null;
 }
 protected function logRequest(Request $request)
 {
     $msg = 'Request "{request_method} {request_uri}"';
     $map = array('request_method' => $request->getMethod(), 'request_uri' => $request->getRequestUri(), 'request_host' => $request->getHost(), 'request_port' => $request->getPort(), 'request_scheme' => $request->getScheme(), 'request_client_ip' => $request->getClientIp(), 'request_content_type' => $request->getContentType(), 'request_acceptable_content_types' => $request->getAcceptableContentTypes(), 'request_etags' => $request->getETags(), 'request_charsets' => $request->getCharsets(), 'request_languages' => $request->getLanguages(), 'request_locale' => $request->getLocale(), 'request_auth_user' => $request->getUser(), 'request_auth_has_password' => !is_null($request->getPassword()));
     // Attributes from newer versions.
     if (method_exists($request, 'getEncodings')) {
         $map['request_encodings'] = $request->getEncodings();
     }
     if (method_exists($request, 'getClientIps')) {
         $map['request_client_ips'] = $request->getClientIps();
     }
     $this->logger->log($this->logLevel, $msg, $map);
 }
 /**
  * @return string
  */
 protected function getBaseUrl()
 {
     $port = '';
     if ('https' == $this->request->getScheme() && $this->request->getPort() != 443) {
         $port = ":{$this->request->getPort()}";
     }
     if ('http' == $this->request->getScheme() && $this->request->getPort() != 80) {
         $port = ":{$this->request->getPort()}";
     }
     $baseUrl = $this->request->getBaseUrl();
     if ('.php' == substr($this->request->getBaseUrl(), -4)) {
         $baseUrl = pathinfo($this->request->getBaseurl(), PATHINFO_DIRNAME);
     }
     $baseUrl = rtrim($baseUrl, '/\\');
     return sprintf('%s://%s%s%s', $this->request->getScheme(), $this->request->getHost(), $port, $baseUrl);
 }
Example #14
0
 /**
  * {@inheritdoc}
  */
 public function determineAccessTokenInHeader(Request $request)
 {
     if ($authorizationHeader = substr($request->headers->get('Authorization'), 0, 4) !== 'MAC ') {
         return false;
     }
     // Find all the parameters expressed in the header
     $params = [];
     foreach (explode(',', substr($authorizationHeader, 4)) as $param) {
         $param = trim($param);
         preg_match_all('/([a-zA-Z]*)="([\\w=]*)"/', $param, $matches);
         // @codeCoverageIgnoreStart
         if (count($matches) !== 3) {
             continue;
         }
         // @codeCoverageIgnoreEnd
         $key = reset($matches[1]);
         $value = trim(reset($matches[2]));
         if (empty($value)) {
             continue;
         }
         if ($key == 'ts') {
             $value = (int) $value;
         }
         $params[$key] = $value;
     }
     if (empty($params['id']) || empty($params['ts']) || empty($params['nonce']) || empty($params['mac'])) {
         return false;
     }
     if ($params['ts'] !== time()) {
         return false;
     }
     if (!($macKey = $this->macTokenRepository->findByAccessTokenId($params['id']))) {
         return false;
     }
     // Calculate and compare the signature
     $calculatedSignatureParts = [$params['timestamp'], $params['nonce'], strtoupper($request->getMethod()), $request->getUri(), $request->getHost(), $request->getPort()];
     if (!empty($params['ext'])) {
         $calculatedSignatureParts[] = $params['ext'];
     }
     $calculatedSignature = base64_encode(hash_hmac('sha256', implode("\n", $calculatedSignatureParts), $macKey));
     // Return the access token if the signature matches
     return $this->hashEquals($calculatedSignature, $params['mac']) ? $params['id'] : null;
 }
 protected function initializeRequestAttributes(Request $request, $master)
 {
     if ($master) {
         // set the context even if the parsing does not need to be done
         // to have correct link generation
         $this->router->setContext(array('base_url' => $request->getBaseUrl(), 'method' => $request->getMethod(), 'host' => $request->getHost(), 'port' => $request->getPort(), 'is_secure' => $request->isSecure()));
     }
     if ($request->attributes->has('_controller')) {
         // routing is already done
         return;
     }
     // add attributes based on the path info (routing)
     if (false !== ($parameters = $this->router->match($request->getPathInfo()))) {
         if (null !== $this->logger) {
             $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], json_encode($parameters)));
         }
         $request->attributes->add($parameters);
         if ($locale = $request->attributes->get('_locale')) {
             $request->getSession()->setLocale($locale);
         }
     } elseif (null !== $this->logger) {
         $this->logger->err(sprintf('No route found for %s', $request->getPathInfo()));
     }
 }
Example #16
0
 public function addSignatureToSymfonyRequest(\Symfony\Component\HttpFoundation\Request $request, $api_token, $secret)
 {
     $method = $request->getMethod();
     // build URL without parameters
     $url = $this->buildURLPrefix($request->getScheme(), $request->getHost(), $request->getPort()) . $request->getPathInfo();
     // get parameters
     if ($method == 'GET') {
         $parameters = $request->query->all();
     } else {
         $is_json = strpos($request->header('CONTENT_TYPE'), '/json');
         if ($is_json) {
             $parameters = json_decode($request->getContent(), true);
         } else {
             $parameters = $request->request->all();
         }
     }
     // get signature
     $signature_info = $this->createSignatureParameters($method, $url, $parameters, $api_token, $secret);
     // add http headers
     $request->headers->set('X-' . $this->auth_header_namespace . '-AUTH-API-TOKEN', $api_token);
     $request->headers->set('X-' . $this->auth_header_namespace . '-AUTH-NONCE', $signature_info['nonce']);
     $request->headers->set('X-' . $this->auth_header_namespace . '-AUTH-SIGNATURE', $signature_info['signature']);
     return $request;
 }
 /**
  * @param Request $request
  *
  * @return SiteAccess
  */
 private function getSiteAccessFromRequest(Request $request)
 {
     return $this->siteAccessRouter->match(new SimplifiedRequest(array('scheme' => $request->getScheme(), 'host' => $request->getHost(), 'port' => $request->getPort(), 'pathinfo' => $request->getPathInfo(), 'queryParams' => $request->query->all(), 'languages' => $request->getLanguages(), 'headers' => $request->headers->all())));
 }
 /**
  * Redirects to a URL.
  *
  * The response status code is 302 if the permanent parameter is false (default),
  * and 301 if the redirection is permanent.
  *
  * In case the path is empty, the status code will be 404 when permanent is false
  * and 410 otherwise.
  *
  * @param Request     $request   The request instance
  * @param string      $path      The absolute path or URL to redirect to
  * @param bool        $permanent Whether the redirect is permanent or not
  * @param string|null $scheme    The URL scheme (null to keep the current one)
  * @param int|null    $httpPort  The HTTP port (null to keep the current one for the same scheme or the configured port in the container)
  * @param int|null    $httpsPort The HTTPS port (null to keep the current one for the same scheme or the configured port in the container)
  *
  * @return Response A Response instance
  *
  * @throws HttpException In case the path is empty
  */
 public function urlRedirectAction(Request $request, $path, $permanent = false, $scheme = null, $httpPort = null, $httpsPort = null)
 {
     if ('' == $path) {
         throw new HttpException($permanent ? 410 : 404);
     }
     $statusCode = $permanent ? 301 : 302;
     // redirect if the path is a full URL
     if (parse_url($path, PHP_URL_SCHEME)) {
         return new RedirectResponse($path, $statusCode);
     }
     if (null === $scheme) {
         $scheme = $request->getScheme();
     }
     $qs = $request->getQueryString();
     if ($qs) {
         if (strpos($path, '?') === false) {
             $qs = '?' . $qs;
         } else {
             $qs = '&' . $qs;
         }
     }
     $port = '';
     if ('http' === $scheme) {
         if (null === $httpPort) {
             if ('http' === $request->getScheme()) {
                 $httpPort = $request->getPort();
             } elseif ($this->container->hasParameter('request_listener.http_port')) {
                 $httpPort = $this->container->getParameter('request_listener.http_port');
             }
         }
         if (null !== $httpPort && 80 != $httpPort) {
             $port = ":{$httpPort}";
         }
     } elseif ('https' === $scheme) {
         if (null === $httpsPort) {
             if ('https' === $request->getScheme()) {
                 $httpsPort = $request->getPort();
             } elseif ($this->container->hasParameter('request_listener.https_port')) {
                 $httpsPort = $this->container->getParameter('request_listener.https_port');
             }
         }
         if (null !== $httpsPort && 443 != $httpsPort) {
             $port = ":{$httpsPort}";
         }
     }
     $url = $scheme . '://' . $request->getHost() . $port . $request->getBaseUrl() . $path . $qs;
     return new RedirectResponse($url, $statusCode);
 }
 public function testForwardedSecure()
 {
     $request = new Request();
     $request->headers->set('X-Forwarded-Proto', 'https');
     $request->headers->set('X-Forwarded-Port', 443);
     $this->startTrustingProxyData();
     $this->assertTrue($request->isSecure());
     $this->assertEquals(443, $request->getPort());
     $this->stopTrustingProxyData();
 }
 /**
  * {@inheritdoc}
  */
 public function processOutbound($path, &$options = array(), Request $request = NULL, BubbleableMetadata $bubbleable_metadata = NULL)
 {
     $url_scheme = 'http';
     $port = 80;
     if ($request) {
         $url_scheme = $request->getScheme();
         $port = $request->getPort();
     }
     $languages = array_flip(array_keys($this->languageManager->getLanguages()));
     // Language can be passed as an option, or we go for current URL language.
     if (!isset($options['language'])) {
         $language_url = $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_URL);
         $options['language'] = $language_url;
     } elseif (!is_object($options['language']) || !isset($languages[$options['language']->getId()])) {
         return $path;
     }
     $config = $this->config->get('language.negotiation')->get('url');
     if ($config['source'] == LanguageNegotiationUrl::CONFIG_PATH_PREFIX) {
         if (is_object($options['language']) && !empty($config['prefixes'][$options['language']->getId()])) {
             $options['prefix'] = $config['prefixes'][$options['language']->getId()] . '/';
             if ($bubbleable_metadata) {
                 $bubbleable_metadata->addCacheContexts(['languages:' . LanguageInterface::TYPE_URL]);
             }
         }
     } elseif ($config['source'] == LanguageNegotiationUrl::CONFIG_DOMAIN) {
         if (is_object($options['language']) && !empty($config['domains'][$options['language']->getId()])) {
             // Save the original base URL. If it contains a port, we need to
             // retain it below.
             if (!empty($options['base_url'])) {
                 // The colon in the URL scheme messes up the port checking below.
                 $normalized_base_url = str_replace(array('https://', 'http://'), '', $options['base_url']);
             }
             // Ask for an absolute URL with our modified base URL.
             $options['absolute'] = TRUE;
             $options['base_url'] = $url_scheme . '://' . $config['domains'][$options['language']->getId()];
             // In case either the original base URL or the HTTP host contains a
             // port, retain it.
             if (isset($normalized_base_url) && strpos($normalized_base_url, ':') !== FALSE) {
                 list(, $port) = explode(':', $normalized_base_url);
                 $options['base_url'] .= ':' . $port;
             } elseif ($url_scheme == 'http' && $port != 80 || $url_scheme == 'https' && $port != 443) {
                 $options['base_url'] .= ':' . $port;
             }
             if (isset($options['https'])) {
                 if ($options['https'] === TRUE) {
                     $options['base_url'] = str_replace('http://', 'https://', $options['base_url']);
                 } elseif ($options['https'] === FALSE) {
                     $options['base_url'] = str_replace('https://', 'http://', $options['base_url']);
                 }
             }
             // Add Drupal's subfolder from the base_path if there is one.
             $options['base_url'] .= rtrim(base_path(), '/');
             if ($bubbleable_metadata) {
                 $bubbleable_metadata->addCacheContexts(['languages:' . LanguageInterface::TYPE_URL, 'url.site']);
             }
         }
     }
     return $path;
 }
Example #21
0
 /**
  * 绑定request到routing的context
  * @param Request $request
  * @param RequestContext $context
  * @return RequestContext
  */
 protected function bindRequestToContext(Request $request, RequestContext $context)
 {
     $context->setBaseUrl($request->getBaseUrl());
     $context->setPathInfo($request->getPathInfo());
     $context->setMethod($request->getMethod());
     $context->setHost($request->getHost());
     $context->setScheme($request->getScheme());
     $context->setHttpPort($request->getPort());
     $context->setHttpPort($request->isSecure() ? null : $request->getPort());
     $context->setHttpsPort($request->isSecure() ? $request->getPort() : null);
     $context->setQueryString($request->server->get('QUERY_STRING', ''));
     return $context;
 }
 private function addRequestInfo(Request $request, PrettyPageHandler $handler)
 {
     $handler->addDataTable('Request', array('URI' => $request->getUri(), 'Request URI' => $request->getRequestUri(), 'Path Info' => $request->getPathInfo(), 'Query String' => $request->getQueryString() ?: '<none>', 'HTTP Method' => $request->getMethod(), 'Script Name' => $request->getScriptName(), 'Base Path' => $request->getBasePath(), 'Base URL' => $request->getBaseUrl(), 'Scheme' => $request->getScheme(), 'Port' => $request->getPort(), 'Host' => $request->getHost()));
 }
Example #23
0
 /**
  * <p>Return <code>string</code> representing the scheme, server, and port
  * number of the current request. Server-relative URLs can be created by
  * simply appending the server-relative path (starting with '/') to this.
  * </p>
  *
  * @param \Symfony\Component\HttpFoundation\Request request The actionKernel request we are processing
  *
  * @return string URL representing the scheme, server, and port number of
  *                the current request
  * @since Struts 1.2.0
  */
 public static function requestToServerStringBuffer(\Symfony\Component\HttpFoundation\Request $request)
 {
     return self::createServerStringBuffer($request->getScheme(), $request->getHost(), $request->getPort());
 }
 private function mapRequest(Request $request, $full = false)
 {
     $mapRequest = array();
     if ($full) {
         $mapRequest['ip'] = $request->getClientIp();
         $mapRequest['method'] = $request->getMethod();
         $mapRequest['host'] = $request->getHttpHost();
         $mapRequest['port'] = $request->getPort();
         $mapRequest['scheme'] = $request->getScheme();
         $mapRequest['uri'] = $request->getUri();
         $mapRequest['requestUri'] = $request->getRequestUri();
         $mapRequest['queryString'] = $request->getQueryString();
         $mapRequest['isSecure'] = $request->isSecure();
         $mapRequest['content'] = $request->getContent();
         $mapRequest['preferredLanguage'] = $request->getPreferredLanguage();
         $mapRequest['languages'] = $request->getLanguages();
         $mapRequest['charsets'] = $request->getCharsets();
         $mapRequest['acceptableContentTypes'] = $request->getAcceptableContentTypes();
         $mapRequest['isXmlHttpRequest'] = $request->isXmlHttpRequest();
         $mapRequest['to_string'] = $request->__toString();
         $mapRequest['server'] = $request->server;
         $mapRequest['headers'] = $request->headers;
         $mapRequest['cookies'] = $request->cookies;
         $mapRequest['oriLocale'] = $request->getLocale();
         $mapRequest['guessedLocale'] = $this->getLocaleManager()->getGuessedLocale();
     }
     $mapRequest['locale'] = $request->getLocale();
     $mapRequest['_route'] = $request->get('_route');
     $mapRequest['_controller'] = $request->get('_controller');
     $mapRequest['_route_params'] = $request->get('_route_params');
     return $mapRequest;
 }