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