|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00025 require_once 'Zend/Service/WindowsAzure/Credentials/CredentialsAbstract.php'; 00026 00030 require_once 'Zend/Service/WindowsAzure/Storage.php'; 00031 00035 require_once 'Zend/Service/WindowsAzure/Credentials/SharedKey.php'; 00036 00043 class Zend_Service_WindowsAzure_Credentials_SharedKeyLite 00044 extends Zend_Service_WindowsAzure_Credentials_CredentialsAbstract 00045 { 00054 public function signRequestUrl( 00055 $requestUrl = '', 00056 $resourceType = Zend_Service_WindowsAzure_Storage::RESOURCE_UNKNOWN, 00057 $requiredPermission = Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_READ 00058 ) { 00059 return $requestUrl; 00060 } 00061 00074 public function signRequestHeaders( 00075 $httpVerb = Zend_Http_Client::GET, 00076 $path = '/', 00077 $queryString = '', 00078 $headers = null, 00079 $forTableStorage = false, 00080 $resourceType = Zend_Service_WindowsAzure_Storage::RESOURCE_UNKNOWN, 00081 $requiredPermission = Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PERMISSION_READ 00082 ) { 00083 // Determine path 00084 if ($this->_usePathStyleUri) { 00085 $path = substr($path, strpos($path, '/')); 00086 } 00087 00088 // Determine query 00089 $queryString = $this->_prepareQueryStringForSigning($queryString); 00090 00091 // Build canonicalized resource string 00092 $canonicalizedResource = '/' . $this->_accountName; 00093 if ($this->_usePathStyleUri) { 00094 $canonicalizedResource .= '/' . $this->_accountName; 00095 } 00096 $canonicalizedResource .= $path; 00097 if ($queryString !== '') { 00098 $canonicalizedResource .= $queryString; 00099 } 00100 00101 // Request date 00102 $requestDate = ''; 00103 if (isset($headers[Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PREFIX_STORAGE_HEADER . 'date'])) { 00104 $requestDate = $headers[Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PREFIX_STORAGE_HEADER . 'date']; 00105 } else { 00106 $requestDate = gmdate('D, d M Y H:i:s', time()) . ' GMT'; // RFC 1123 00107 } 00108 00109 // Create string to sign 00110 $stringToSign = array(); 00111 $stringToSign[] = $requestDate; // Date 00112 $stringToSign[] = $canonicalizedResource; // Canonicalized resource 00113 $stringToSign = implode("\n", $stringToSign); 00114 $signString = base64_encode(hash_hmac('sha256', $stringToSign, $this->_accountKey, true)); 00115 00116 // Sign request 00117 $headers[Zend_Service_WindowsAzure_Credentials_CredentialsAbstract::PREFIX_STORAGE_HEADER . 'date'] = $requestDate; 00118 $headers['Authorization'] = 'SharedKeyLite ' . $this->_accountName . ':' . $signString; 00119 00120 // Return headers 00121 return $headers; 00122 } 00123 }