Ejemplo n.º 1
0
 /**
  * run the job, then remove it from the joblist
  *
  * @param JobList $jobList
  * @param ILogger $logger
  */
 public function execute($jobList, ILogger $logger = null)
 {
     $jobList->remove($this, $this->argument);
     $target = $this->argument['url'];
     // only execute if target is still in the list of trusted domains
     if ($this->trustedServers->isTrustedServer($target)) {
         $this->parentExecute($jobList, $logger);
     }
 }
Ejemplo n.º 2
0
 /**
  * create shared secret and return it
  *
  * @return \OC_OCS_Result
  */
 public function getSharedSecret()
 {
     $url = $this->request->getParam('url');
     $token = $this->request->getParam('token');
     if ($this->trustedServers->isTrustedServer($url) === false || $this->isValidToken($url, $token) === false) {
         return new \OC_OCS_Result(null, HTTP::STATUS_FORBIDDEN);
     }
     $sharedSecret = $this->secureRandom->getMediumStrengthGenerator()->generate(32);
     $this->trustedServers->addSharedSecret($url, $sharedSecret);
     // reset token after the exchange of the shared secret was successful
     $this->dbHandler->addToken($url, '');
     return new \OC_OCS_Result(['sharedSecret' => $sharedSecret], Http::STATUS_OK);
 }
Ejemplo n.º 3
0
 /**
  * check if the server should be added to the list of trusted servers or not
  *
  * @param string $url
  * @return bool
  * @throws HintException
  */
 protected function checkServer($url)
 {
     if ($this->trustedServers->isTrustedServer($url) === true) {
         $message = 'Server is already in the list of trusted servers.';
         $hint = $this->l->t('Server is already in the list of trusted servers.');
         throw new HintException($message, $hint);
     }
     if ($this->trustedServers->isOwnCloudServer($url) === false) {
         $message = 'No ownCloud server found';
         $hint = $this->l->t('No ownCloud server found');
         throw new HintException($message, $hint);
     }
     return true;
 }
Ejemplo n.º 4
0
 /**
  * create shared secret and return it
  *
  * @return \OC_OCS_Result
  */
 public function getSharedSecret()
 {
     $url = $this->request->getParam('url');
     $token = $this->request->getParam('token');
     if ($this->trustedServers->isTrustedServer($url) === false) {
         $this->logger->log(\OCP\Util::ERROR, 'remote server not trusted (' . $url . ') while getting shared secret');
         return new \OC_OCS_Result(null, HTTP::STATUS_FORBIDDEN);
     }
     if ($this->isValidToken($url, $token) === false) {
         $this->logger->log(\OCP\Util::ERROR, 'remote server (' . $url . ') didn\'t send a valid token (got ' . $token . ') while getting shared secret');
         return new \OC_OCS_Result(null, HTTP::STATUS_FORBIDDEN);
     }
     $sharedSecret = $this->secureRandom->generate(32);
     $this->trustedServers->addSharedSecret($url, $sharedSecret);
     // reset token after the exchange of the shared secret was successful
     $this->dbHandler->addToken($url, '');
     return new \OC_OCS_Result(['sharedSecret' => $sharedSecret], Http::STATUS_OK);
 }
Ejemplo n.º 5
0
 public function testIsTrustedServer()
 {
     $this->dbHandler->expects($this->once())->method('serverExists')->with('url')->willReturn(true);
     $this->assertTrue($this->trustedServers->isTrustedServer('url'));
 }