Example #1
0
 /**
  * @param iSigner    $iSigner
  * @param Credential $credential
  * @param            $domain
  *
  * @return string
  */
 public function composeUrl($iSigner, $credential, $domain)
 {
     $apiParams = parent::getQueryParameters();
     $apiParams["RegionId"] = $this->getRegionId();
     $apiParams["AccessKeyId"] = $credential->getAccessKeyId();
     $apiParams["Format"] = $this->getAcceptFormat();
     $apiParams["SignatureMethod"] = $iSigner->getSignatureMethod();
     $apiParams["SignatureVersion"] = $iSigner->getSignatureVersion();
     $apiParams["SignatureNonce"] = uniqid();
     date_default_timezone_set("GMT");
     $apiParams["Timestamp"] = date($this->dateTimeFormat);
     $apiParams["Action"] = $this->getActionName();
     $apiParams["Version"] = $this->getVersion();
     $apiParams["Signature"] = $this->computeSignature($apiParams, $credential->getAccessSecret(), $iSigner);
     $requestUrl = $this->getProtocol() . "://" . $domain . "/?";
     foreach ($apiParams as $apiParamKey => $apiParamValue) {
         $requestUrl .= "{$apiParamKey}=" . urlencode($apiParamValue) . "&";
     }
     return substr($requestUrl, 0, -1);
 }
 public function testCredential()
 {
     $credential = new Credential("accessKeyId", "accessSecret");
     $this->assertEquals("accessKeyId", $credential->getAccessKeyId());
     $this->assertEquals("accessSecret", $credential->getAccessSecret());
     $this->assertNotNull($credential->getRefreshDate());
     $dateNow = date('Y-m-d\\TH:i:s\\Z');
     $credential->setExpiredDate(1);
     $this->assertNotNull($credential->getExpiredDate());
     $this->assertTrue($credential->getExpiredDate() > $dateNow);
 }