/**
  * @return \TYPO3\Flow\Http\Uri
  */
 public function getUri()
 {
     $uri = new \TYPO3\Flow\Http\Uri('');
     $uri->setScheme($this->scheme);
     $uri->setHost($this->host);
     $uri->setPort($this->port);
     return $uri;
 }
 /**
  * This method writes in CasManager referer request in session because redirecting to cas server is this referer lost.
  *
  * You can get latest referer before redurect as follows: $this->casManager->getMiscellaneousByPath($providerName . '.beforeRedirectRefererUri');
  *
  * @param string $providerName
  *
  * @return \TYPO3\Flow\Http\Uri
  *
  * @todo skip this step if currentRequest === refererRequest
  */
 private function catchReferer($providerName)
 {
     if (!$this->request->getHttpRequest()->getHeaders()->has('Referer') || !$this->request->getHttpRequest()->getHeaders()->has('Host')) {
         return;
     }
     $hostName = $this->request->getHttpRequest()->getHeaders()->get('Host');
     $referer = $this->request->getHttpRequest()->getHeaders()->get('Referer');
     $refererUri = new \TYPO3\Flow\Http\Uri($referer);
     $fragment = $this->request->getInternalArgument('__fragment');
     if (!empty($fragment) && is_string($fragment)) {
         $refererUri->setFragment($fragment);
     }
     if ($refererUri->getHost() === $hostName) {
         $this->casManager->setMiscellaneousByPath($providerName . '.beforeRedirectRefererUri', $refererUri);
         return $referer;
     }
     return;
 }
 /**
  * Remove query arguments from the given URI
  *
  * @param string $redirectUri
  * @return string
  */
 protected function removeUriQueryArguments($redirectUri)
 {
     $uri = new \TYPO3\Flow\Http\Uri($redirectUri);
     $uri->setQuery(NULL);
     $redirectUri = (string) $uri;
     return $redirectUri;
 }