toArray(); } $this->setOptions($options); } } /** * Parse option array or Zend_Config instance and setup options using their * relevant mutators. * * @param array|Zend_Config $options * @return Zend_Oauth_Config */ public function setOptions(array $options) { foreach ($options as $key => $value) { switch ($key) { case 'consumerKey': $this->setConsumerKey($value); break; case 'consumerSecret': $this->setConsumerSecret($value); break; case 'signatureMethod': $this->setSignatureMethod($value); break; case 'version': $this->setVersion($value); break; case 'callbackUrl': $this->setCallbackUrl($value); break; case 'siteUrl': $this->setSiteUrl($value); break; case 'requestTokenUrl': $this->setRequestTokenUrl($value); break; case 'accessTokenUrl': $this->setAccessTokenUrl($value); break; case 'userAuthorizationUrl': $this->setUserAuthorizationUrl($value); break; case 'authorizeUrl': $this->setAuthorizeUrl($value); break; case 'requestMethod': $this->setRequestMethod($value); break; case 'rsaPrivateKey': $this->setRsaPrivateKey($value); break; case 'rsaPublicKey': $this->setRsaPublicKey($value); break; } } if (isset($options['requestScheme'])) { $this->setRequestScheme($options['requestScheme']); } return $this; } /** * Set consumer key * * @param string $key * @return Zend_Oauth_Config */ public function setConsumerKey($key) { $this->_consumerKey = $key; return $this; } /** * Get consumer key * * @return string */ public function getConsumerKey() { return $this->_consumerKey; } /** * Set consumer secret * * @param string $secret * @return Zend_Oauth_Config */ public function setConsumerSecret($secret) { $this->_consumerSecret = $secret; return $this; } /** * Get consumer secret * * Returns RSA private key if set; otherwise, returns any previously set * consumer secret. * * @return string */ public function getConsumerSecret() { if ($this->_rsaPrivateKey !== null) { return $this->_rsaPrivateKey; } return $this->_consumerSecret; } /** * Set signature method * * @param string $method * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception if unsupported signature method specified */ public function setSignatureMethod($method) { $method = strtoupper($method); if (!in_array($method, array( 'HMAC-SHA1', 'HMAC-SHA256', 'RSA-SHA1', 'PLAINTEXT' )) ) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception('Unsupported signature method: ' . $method . '. Supported are HMAC-SHA1, RSA-SHA1, PLAINTEXT and HMAC-SHA256'); } $this->_signatureMethod = $method;; return $this; } /** * Get signature method * * @return string */ public function getSignatureMethod() { return $this->_signatureMethod; } /** * Set request scheme * * @param string $scheme * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception if invalid scheme specified, or if POSTBODY set when request method of GET is specified */ public function setRequestScheme($scheme) { $scheme = strtolower($scheme); if (!in_array($scheme, array( Zend_Oauth::REQUEST_SCHEME_HEADER, Zend_Oauth::REQUEST_SCHEME_POSTBODY, Zend_Oauth::REQUEST_SCHEME_QUERYSTRING, )) ) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( '\'' . $scheme . '\' is an unsupported request scheme' ); } if ($scheme == Zend_Oauth::REQUEST_SCHEME_POSTBODY && $this->getRequestMethod() == Zend_Oauth::GET ) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( 'Cannot set POSTBODY request method if HTTP method set to GET' ); } $this->_requestScheme = $scheme; return $this; } /** * Get request scheme * * @return string */ public function getRequestScheme() { return $this->_requestScheme; } /** * Set version * * @param string $version * @return Zend_Oauth_Config */ public function setVersion($version) { $this->_version = $version; return $this; } /** * Get version * * @return string */ public function getVersion() { return $this->_version; } /** * Set callback URL * * @param string $url * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid URLs */ public function setCallbackUrl($url) { if (!Zend_Uri::check($url)) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( '\'' . $url . '\' is not a valid URI' ); } $this->_callbackUrl = $url; return $this; } /** * Get callback URL * * @return string */ public function getCallbackUrl() { return $this->_callbackUrl; } /** * Set site URL * * @param string $url * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid URLs */ public function setSiteUrl($url) { if (!Zend_Uri::check($url)) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( '\'' . $url . '\' is not a valid URI' ); } $this->_siteUrl = $url; return $this; } /** * Get site URL * * @return string */ public function getSiteUrl() { return $this->_siteUrl; } /** * Set request token URL * * @param string $url * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid URLs */ public function setRequestTokenUrl($url) { if (!Zend_Uri::check($url)) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( '\'' . $url . '\' is not a valid URI' ); } $this->_requestTokenUrl = rtrim($url, '/'); return $this; } /** * Get request token URL * * If no request token URL has been set, but a site URL has, returns the * site URL with the string "/request_token" appended. * * @return string */ public function getRequestTokenUrl() { if (!$this->_requestTokenUrl && $this->_siteUrl) { return $this->_siteUrl . '/request_token'; } return $this->_requestTokenUrl; } /** * Set access token URL * * @param string $url * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid URLs */ public function setAccessTokenUrl($url) { if (!Zend_Uri::check($url)) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( '\'' . $url . '\' is not a valid URI' ); } $this->_accessTokenUrl = rtrim($url, '/'); return $this; } /** * Get access token URL * * If no access token URL has been set, but a site URL has, returns the * site URL with the string "/access_token" appended. * * @return string */ public function getAccessTokenUrl() { if (!$this->_accessTokenUrl && $this->_siteUrl) { return $this->_siteUrl . '/access_token'; } return $this->_accessTokenUrl; } /** * Set user authorization URL * * @param string $url * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid URLs */ public function setUserAuthorizationUrl($url) { return $this->setAuthorizeUrl($url); } /** * Set authorization URL * * @param string $url * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid URLs */ public function setAuthorizeUrl($url) { if (!Zend_Uri::check($url)) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception( '\'' . $url . '\' is not a valid URI' ); } $this->_authorizeUrl = rtrim($url, '/'); return $this; } /** * Get user authorization URL * * @return string */ public function getUserAuthorizationUrl() { return $this->getAuthorizeUrl(); } /** * Get authorization URL * * If no authorization URL has been set, but a site URL has, returns the * site URL with the string "/authorize" appended. * * @return string */ public function getAuthorizeUrl() { if (!$this->_authorizeUrl && $this->_siteUrl) { return $this->_siteUrl . '/authorize'; } return $this->_authorizeUrl; } /** * Set request method * * @param string $method * @return Zend_Oauth_Config * @throws Zend_Oauth_Exception for invalid request methods */ public function setRequestMethod($method) { $method = strtoupper($method); if (!in_array($method, array( Zend_Oauth::GET, Zend_Oauth::POST, Zend_Oauth::PUT, Zend_Oauth::DELETE, )) ) { require_once 'Zend/Oauth/Exception.php'; throw new Zend_Oauth_Exception('Invalid method: ' . $method); } $this->_requestMethod = $method; return $this; } /** * Get request method * * @return string */ public function getRequestMethod() { return $this->_requestMethod; } /** * Set RSA public key * * @param Zend_Crypt_Rsa_Key_Public $key * @return Zend_Oauth_Config */ public function setRsaPublicKey(Zend_Crypt_Rsa_Key_Public $key) { $this->_rsaPublicKey = $key; return $this; } /** * Get RSA public key * * @return Zend_Crypt_Rsa_Key_Public */ public function getRsaPublicKey() { return $this->_rsaPublicKey; } /** * Set RSA private key * * @param Zend_Crypt_Rsa_Key_Private $key * @return Zend_Oauth_Config */ public function setRsaPrivateKey(Zend_Crypt_Rsa_Key_Private $key) { $this->_rsaPrivateKey = $key; return $this; } /** * Get RSA private key * * @return Zend_Crypt_Rsa_Key_Private */ public function getRsaPrivateKey() { return $this->_rsaPrivateKey; } /** * Set OAuth token * * @param Zend_Oauth_Token $token * @return Zend_Oauth_Config */ public function setToken(Zend_Oauth_Token $token) { $this->_token = $token; return $this; } /** * Get OAuth token * * @return Zend_Oauth_Token */ public function getToken() { return $this->_token; } }