Ejemplo n.º 1
0
 public function testVerifyMd5Hash_KnownUserException()
 {
     $prefix = null;
     $sharedKey = "zaqxswcdevfrbgtnhymjukiloZAQCDEFRBGTNHYMJUKILOPlkjhgfdsapoiuytrewqmnbvcx";
     $expectedPlaceInqueue = 7810;
     $expectedQueueId = "fe070f51-5548-403c-9f0a-2626c15cb81b";
     $placeInQueueEncrypted = "3d20e598-0304-474f-87e8-371a34073d3b";
     $unixTimestamp = 1360241766;
     $expectedTimeStamp = new \DateTime("2013-02-07 12:56:06", new \DateTimeZone("UTC"));
     $expectedCustomerId = "somecust";
     $expectedEventId = "someevent";
     $expectedOriginalUrl = "http://www.example.com/test.aspx?prop=value";
     $urlNoHash = $expectedOriginalUrl . "?" . $prefix . "c=somecust&" . $prefix . "e=someevent&" . $prefix . "q=" . $expectedQueueId . "&" . $prefix . "p=" . $placeInQueueEncrypted . "&" . $prefix . "ts=" . $unixTimestamp . "&" . $prefix . "h=";
     $expectedHash = "INVALIDHASHxxxxxxxxxxxxxxxxxxxx";
     $url = $urlNoHash . $expectedHash;
     $urlProvider = new MockUrlProvider($url, $expectedOriginalUrl, $expectedQueueId, $placeInQueueEncrypted, (string) $unixTimestamp, $expectedCustomerId, $expectedEventId);
     try {
         $knownUser = KnownUserFactory::verifyMd5Hash($sharedKey, $urlProvider, $prefix);
     } catch (KnownUserException $e) {
         $this->assertEquals($url, $e->getValidationUrl());
         $this->assertEquals($expectedOriginalUrl, $e->getOriginalUrl());
     }
 }
 /**
  * Validate request from Queue
  *
  * @param Queue   $queue
  * @param boolean $includeTargetUrl
  * @param boolean $sslEnabled
  * @param string  $domainAlias
  * @param string  $language
  * @param string  $layoutName
  *
  * @throws Opifer\QueueIt\Exception\KnownUserValidationException
  * @throws Opifer\QueueIt\Exception\ExpiredValidationException
  *
  * @return Opifer\QueueIt\Validation\AcceptedConfirmedResult|
  *                                                            Opifer\QueueIt\Validation\EnqueueResult
  */
 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 $e) {
         throw new KnownUserValidationException($e, $queue);
     } catch (InvalidKnownUserHashException $e) {
         throw new KnownUserValidationException($e, $queue);
     }
 }