/**
  * @param exodBearerToken $exodBearerToken
  *
  * @return exodAppBusiness
  */
 public function getExodApp(exodBearerToken $exodBearerToken)
 {
     $exodConfig = new exodConfig();
     $exodConfig->checkComplete();
     exodCurl::setSslVersion($exodConfig->getSSLVersion());
     exodCurl::setIpV4($exodConfig->getResolveIpV4());
     if ($exodConfig->getClientType() == exodApp::TYPE_BUSINESS) {
         $exodTenant = new exodTenant();
         $exodTenant->setTenantId($exodConfig->getTentantId());
         $exodTenant->setTenantName($exodConfig->getTenantName());
         $app = exodAppBusiness::getInstance($exodBearerToken, $exodConfig->getClientId(), $exodConfig->getClientSecret(), $exodTenant);
         $app->setIpResolveV4($exodConfig->getResolveIpV4());
     } elseif ($exodConfig->getClientType() == exodApp::TYPE_PUBLIC) {
         $app = exodAppPublic::getInstance($exodBearerToken, $exodConfig->getClientId(), $exodConfig->getClientSecret());
         $app->setIpResolveV4($exodConfig->getResolveIpV4());
     }
     //		$exodAppBusiness->setSslVersion(4);
     return $app;
 }
 /**
  * @throws ilCloudException
  */
 protected function loadToken()
 {
     $this->response->loadFromRequest(array('code'));
     if ($this->response->getCode()) {
         $this->exod_app->buildURLs();
         $exodCurl = new exodCurl();
         $exodCurl->setUrl($this->exod_app->getTokenUrl());
         $exodCurl->addHeader("Content-Type: application/x-www-form-urlencoded");
         $exodCurl->addPostField('code', $this->response->getCode());
         $exodCurl->addPostField('client_id', $this->exod_app->getClientId());
         $exodCurl->addPostField('redirect_uri', $this->exod_app->getRedirectUri());
         $exodCurl->addPostField('grant_type', 'authorization_code');
         $exodCurl->addPostField('client_secret', $this->getExodApp()->getClientSecret());
         $exodCurl->addPostField('resource', $this->exod_app->getRessourceUri());
         $exodCurl->post();
         //			exit;
         $this->response->loadFromResponse($exodCurl->getResponseBody());
         //			echo '<pre>' . print_r($this, 1) . '</pre>';
         //			exit;
         $exodBearerToken = new exodBearerToken();
         $exodBearerToken->setAccessToken($this->getResponse()->getAccessToken());
         $exodBearerToken->setRefreshToken($this->getResponse()->getRefreshToken());
         $exodBearerToken->setValidThrough($this->getResponse()->getExpiresOn());
         $this->setExodBearerToken($exodBearerToken);
     } else {
         throw new ilCloudException(ilCloudException::UNKNONW_EXCEPTION, 'No Code received');
     }
 }
 /**
  * @return mixed
  * @throws ilCloudException
  */
 protected function request()
 {
     $exodCurl = new exodCurl();
     $exodCurl->setUrl($this->getRessource());
     $exodCurl->addHeader("Authorization: Bearer " . $this->getAccessToken());
     switch ($this->getRequestType()) {
         case self::REQ_TYPE_GET:
             $exodCurl->get();
             break;
         case self::REQ_TYPE_PUT:
             $exodCurl->setPutFilePath($this->getRequestFilePath());
             $exodCurl->put();
             break;
         case self::REQ_TYPE_DELETE:
             $exodCurl->addHeader('if-match: ' . $this->getRequestEtag());
             $exodCurl->delete();
             break;
         case self::REQ_TYPE_POST:
             $exodCurl->post();
             break;
     }
     $this->setResponseBody($exodCurl->getResponseBody());
     $this->setResponseMimeType($exodCurl->getResponseMimeType());
     $this->setResponseContentSize($exodCurl->getResponseContentSize());
     $this->setResponseStatus($exodCurl->getResponseStatus());
     $resp = json_decode($exodCurl->getResponseBody());
     if ($this->getResponseStatus() == 401) {
         if (self::DEBUG) {
             echo '<pre>' . print_r($this, 1) . '</pre>';
             exit;
             //
         }
         throw new ilCloudException(ilCloudException::AUTHENTICATION_FAILED, 'token invalid');
     }
     if ($resp->error) {
         if (self::DEBUG) {
             throw new ilCloudException(-1, print_r($resp, true));
         } else {
             throw new ilCloudException(-1, $resp->error->message);
         }
     }
 }
示例#4
0
 /**
  * @param exodBearerToken $exodBearerToken
  *
  * @return bool
  */
 public function refreshToken(exodBearerToken &$exodBearerToken)
 {
     //		throw new ilCloudException(-1, 'failed');
     $exodLog = exodLog::getInstance();
     $exodLog->write('refreshing-Token...');
     $this->exod_app->buildURLs();
     $exodCurl = new exodCurl();
     $exodCurl->setUrl($this->exod_app->getTokenUrl());
     $exodCurl->addHeader("Content-Type: application/x-www-form-urlencoded");
     $exodCurl->addPostField('client_secret', $this->getExodApp()->getClientSecret());
     $exodCurl->addPostField('client_id', $this->exod_app->getClientId());
     $exodCurl->addPostField('grant_type', 'refresh_token');
     $exodCurl->addPostField('refresh_token', $exodBearerToken->getRefreshToken());
     $exodCurl->addPostField('resource', $this->exod_app->getRessourceUri());
     $exodCurl->addPostField('redirect_uri', $this->exod_app->getRedirectUri());
     $exodCurl->post();
     $this->response->loadFromResponse($exodCurl->getResponseBody());
     $exodBearerToken->setRefreshToken($this->response->getRefreshToken());
     $exodBearerToken->setAccessToken($this->response->getAccessToken());
     $exodBearerToken->setValidThrough($this->response->getExpiresOn());
     $this->setExodBearerToken($exodBearerToken);
 }
示例#5
0
 /**
  * @param boolean $ip_v4
  */
 public static function setIpV4($ip_v4)
 {
     self::$ip_v4 = $ip_v4;
 }