Exemplo n.º 1
0
 /**
  * Validate request and header parameters.
  *
  * @param array $protocolParams
  * @param array $requiredParams
  * @return void
  * @throws Exception|OauthInputException
  */
 protected function _validateProtocolParams($protocolParams, $requiredParams)
 {
     // validate version if specified.
     if (isset($protocolParams['oauth_version'])) {
         $this->_validateVersionParam($protocolParams['oauth_version']);
     }
     // Required parameters validation. Default to minimum required params if not provided.
     if (empty($requiredParams)) {
         $requiredParams = array("oauth_consumer_key", "oauth_signature", "oauth_signature_method", "oauth_nonce", "oauth_timestamp");
     }
     $this->_checkRequiredParams($protocolParams, $requiredParams);
     if (isset($protocolParams['oauth_token']) && !$this->_tokenProvider->validateOauthToken($protocolParams['oauth_token'])) {
         throw new Exception('Token is not the correct length');
     }
     // Validate signature method.
     if (!in_array($protocolParams['oauth_signature_method'], self::getSupportedSignatureMethods())) {
         throw new OauthInputException('Signature method %1 is not supported', [$protocolParams['oauth_signature_method']]);
     }
     $consumer = $this->_tokenProvider->getConsumerByKey($protocolParams['oauth_consumer_key']);
     $this->_nonceGenerator->validateNonce($consumer, $protocolParams['oauth_nonce'], $protocolParams['oauth_timestamp']);
 }