/**
  * 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;
 }