private static function validateRequestFromQueue($queue, $includeTargetUrl = null, $sslEnabled = null, $domainAlias = null, $language = null, $layoutName = null) { global $resultProviderFactory; $sessionObject = $resultProviderFactory()->getValidationResult($queue); if ($sessionObject != null) { if ($sessionObject instanceof AcceptedConfirmedResult) { return new AcceptedConfirmedResult($queue, $sessionObject->getKnownUser(), false); } return $sessionObject; } try { $knownUser = KnownUserFactory::verifyMd5Hash(); if ($knownUser == null) { $landingPage = $queue->getLandingPageUrl($includeTargetUrl); if ($landingPage != null) { return new EnqueueResult($queue, $landingPage); } return new EnqueueResult($queue, $queue->GetQueueUrl($includeTargetUrl, $sslEnabled, $domainAlias, $language, $layoutName)); } if ($knownUser->getTimeStamp()->getTimestamp() < time() - 180) { throw new ExpiredValidationException($queue, $knownUser); } $result = new AcceptedConfirmedResult($queue, $knownUser, true); $resultProviderFactory()->setValidationResult($queue, $result); return $result; } catch (InvalidKnownUserUrlException $ex) { throw new KnownUserValidationException($ex, $queue); } catch (InvalidKnownUserHashException $ex) { throw new KnownUserValidationException($ex, $queue); } }
private function generateHash($queueId, $originalUrl, $placeInQueue, $redirectType, $timestamp, $expirationTime) { if ($placeInQueue == null) { $placeInQueue = 0; } return hash("sha256", $queueId . $originalUrl . $placeInQueue . $redirectType . $timestamp . $expirationTime . KnownUserFactory::getSecretKey()); }