/**
  * setCache() - persists cache
  *
  * @param  Tinebase_Model_CredentialCache $_cache
  */
 public function setCache(Tinebase_Model_CredentialCache $_cache)
 {
     $cacheId = $_cache->getCacheId();
     setcookie(self::COOKIE_KEY, base64_encode(Zend_Json::encode($cacheId)));
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Set credential cache cookie.');
     }
 }
Пример #2
0
 /**
  * decryptes username and password
  *
  * @param  Tinebase_Model_CredentialCache $_cache
  * @return void
  */
 protected function _decrypt($_cache)
 {
     $encryptedData = base64_decode($_cache->cache);
     $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
     mcrypt_generic_init($td, $_cache->key, substr($_cache->getId(), 0, 16));
     $cacheData = Zend_Json::decode(trim(mdecrypt_generic($td, $encryptedData)));
     $_cache->username = $cacheData['username'];
     $_cache->password = $cacheData['password'];
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
 }
 /**
  * decrypts username and password
  *
  * @param  Tinebase_Model_CredentialCache $_cache
  * @throws Tinebase_Exception_NotFound
  * @throws Tinebase_Exception_SystemGeneric
  */
 protected function _decrypt($_cache)
 {
     if (!extension_loaded('mcrypt')) {
         throw new Tinebase_Exception_SystemGeneric('mcrypt extension required');
     }
     $encryptedData = base64_decode($_cache->cache);
     $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', '');
     mcrypt_generic_init($td, $_cache->key, substr($_cache->getId(), 0, 16));
     $jsonEncodedData = trim(mdecrypt_generic($td, $encryptedData));
     $cacheData = Tinebase_Helper::jsonDecode($jsonEncodedData);
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
     if (!isset($cacheData['username']) && !isset($cacheData['password'])) {
         throw new Tinebase_Exception_NotFound('could not find valid credential cache');
     }
     $_cache->username = $cacheData['username'];
     $_cache->password = $cacheData['password'];
 }