protected function initEnv()
 {
     $this->googleId = GOOGLE_ID;
     $this->googleName = GOOGLE_NAME;
     $this->email = EMAIL;
     $this->accessToken = $this->encryptor->decrypt(ACCESS_TOKEN);
     $this->refreshToken = $this->encryptor->decrypt(REFRESH_TOKEN);
     $this->tableId = TABLE_ID;
 }
Example #2
0
 /**
  * @param $value
  * @return string
  * @throws \InvalidCiphertextException
  */
 protected function decryptValue($value)
 {
     $wrapper = $this->findWrapper($value);
     if (!$wrapper) {
         if ($this->legacyEncryptor) {
             /* @ is intentional to suppress warnings from invalid cipher texts which
                are handled by checking return === false */
             $ret = @$this->legacyEncryptor->decrypt($value);
             if ($ret === false) {
                 throw new \InvalidCiphertextException("Value is not an encrypted value.");
             } else {
                 return $ret;
             }
         } else {
             throw new \InvalidCiphertextException("Value is not an encrypted value.");
         }
     }
     try {
         return $wrapper->decrypt(substr($value, mb_strlen($wrapper->getPrefix())));
     } catch (\InvalidCiphertextException $e) {
         throw new \InvalidCiphertextException("Value {$value} is not an encrypted value.");
     } catch (\Exception $e) {
         // decryption failed for more serious reasons
         throw new ApplicationException("Decryption failed: " . $e->getMessage(), $e, ["value" => $value]);
     }
 }
Example #3
0
 /**
  * @covers \Keboola\Syrup\Job\Metadata\JobFactory::create
  * @covers \Keboola\Syrup\Job\Metadata\JobFactory::setStorageApiClient
  */
 public function testJobFactory()
 {
     $storageApiClient = new Client(['token' => SYRUP_SAPI_TEST_TOKEN, 'userAgent' => SYRUP_APP_NAME]);
     $key = md5(uniqid());
     $encryptor = new Encryptor($key);
     /** @var ObjectEncryptor $configEncryptor */
     $configEncryptor = self::$kernel->getContainer()->get('syrup.object_encryptor');
     $jobFactory = new JobFactory(SYRUP_APP_NAME, $encryptor, $configEncryptor);
     $jobFactory->setStorageApiClient($storageApiClient);
     $command = uniqid();
     $param = uniqid();
     $lock = uniqid();
     $tokenData = $storageApiClient->verifyToken();
     $job = $jobFactory->create($command, ['param' => $param], $lock);
     $this->assertEquals($command, $job->getCommand());
     $this->assertEquals($lock, $job->getLockName());
     $this->assertEquals(['param' => $param], $job->getParams());
     $this->assertArrayHasKey('id', $job->getProject());
     $this->assertEquals($tokenData['owner']['id'], $job->getProject()['id']);
     $this->assertArrayHasKey('name', $job->getProject());
     $this->assertEquals($tokenData['owner']['name'], $job->getProject()['name']);
     $this->assertArrayHasKey('id', $job->getToken());
     $this->assertEquals($tokenData['id'], $job->getToken()['id']);
     $this->assertArrayHasKey('description', $job->getToken());
     $this->assertEquals($tokenData['description'], $job->getToken()['description']);
     $this->assertArrayHasKey('token', $job->getToken());
     $this->assertEquals($tokenData['token'], $encryptor->decrypt($job->getToken()['token']));
 }
 /**
  * @param $token
  * @return string
  */
 private function decryptToken($token)
 {
     if (empty($token)) {
         return $token;
     }
     if (!preg_match(Token::TOKEN_REGEXP, $token)) {
         return $this->encryptor->decrypt($token);
     } else {
         return $token;
     }
 }
 /**
  * @param Metadata\Job $job
  * @return Client
  */
 private function createJobSapiClient(Metadata\Job $job)
 {
     return new Client(array('token' => $this->encryptor->decrypt($job->getToken()['token']), 'url' => $this->getConfiguration()->getStorageApiUrl()));
 }
Example #6
0
 public function getJobStatus($url, Elasticsearch\Job $job, Encryptor $encryptor)
 {
     $timeout = 2;
     return $this->get($url, array('config' => array('curl' => array(CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0)), 'headers' => array('X-StorageApi-Token' => $encryptor->decrypt($job->getToken()), 'X-KBC-RunId' => $job->getRunId(), 'X-User-Agent', KeboolaOrchestratorBundle::SYRUP_COMPONENT_NAME . " - JobExecutor"), 'timeout' => 60 * $timeout));
     // handling curl errors
     //        $request->getEmitter()->on('error', function (ErrorEvent $e) use ($timeout) {
     //            $curlError = $e->getTransferInfo('curl_result');
     //            if ($curlError == 28) {
     //                throw new Exception\JobRuntimeException(sprintf('Task polling timeout after %d minutes', $timeout));
     //            }
     //        });
 }