Ejemplo n.º 1
0
 private function _verifySign($domain, $text, $sign)
 {
     include_once KFL_DIR . '/Libs/Cache.class.php';
     $filename = $domain . ".txt";
     $cache = new Cache(86400 * 300, 0);
     $cache->setCacheStore("file");
     // or memcache
     $cache->setCacheDir(APP_TEMP_DIR);
     $cache->setCacheFile($filename);
     if ($cache->isCached()) {
         $client = unserialize($cache->fetch());
     } else {
         require_once 'ClientModel.class.php';
         $ClientModel = new ClientModel();
         $client = $ClientModel->getClientByName($domain);
         if ($client) {
             $cache->save(serialize($client));
         } else {
             return false;
         }
     }
     $this->_private_key = $client['private_key'];
     if (hmac($this->_private_key, $text, 'sha1') == $sign) {
         return true;
     } else {
         return false;
     }
 }
Ejemplo n.º 2
0
 function op_addclient()
 {
     $arr['domain'] = $_POST['adddomain'];
     $pattern = "/([\\w]+\\.[\\w]+)/i";
     if (!preg_match($pattern, $arr['domain'])) {
         $msg = array('s' => 400, 'm' => lang('invaliddomain'), 'd' => '');
         exit(json_output($msg));
     }
     include_once "ClientModel.class.php";
     $clientModel = new ClientModel();
     if ($row = $clientModel->getClientByName($arr['domain'])) {
         $msg = array('s' => 400, 'm' => lang('domainexist'), 'd' => '');
         exit(json_output($msg));
     }
     $arr['key'] = $clientModel->generateKey();
     $r = $clientModel->addNewClient($arr);
     if ($r) {
         $msg = array('s' => 200, 'm' => lang('success'), 'd' => $GLOBALS['gSiteInfo']['www_site_url'] . "/admin.php/client/defaults");
         exit(json_output($msg));
     } else {
         $msg = array('s' => 400, 'm' => lang('failed'), 'd' => '');
         exit(json_output($msg));
     }
 }