示例#1
0
 public static function Init()
 {
     if (CSecuritySessionVirtual::isStorageEnabled()) {
         if (!CSecuritySessionVirtual::init()) {
             self::triggerFatalError("Failed to initialize Virtual session handler");
         }
         //may return false with session.auto_start is set to On
         if (session_set_save_handler(array("CSecuritySessionVirtual", "open"), array("CSecuritySessionVirtual", "close"), array("CSecuritySessionVirtual", "read"), array("CSecuritySessionVirtual", "write"), array("CSecuritySessionVirtual", "destroy"), array("CSecuritySessionVirtual", "gc"))) {
             register_shutdown_function("session_write_close");
         }
     } elseif (CSecuritySessionMC::isStorageEnabled()) {
         if (!CSecuritySessionMC::Init()) {
             self::triggerFatalError("Failed to initialize Memcache session handler");
         }
         //may return false with session.auto_start is set to On
         if (session_set_save_handler(array("CSecuritySessionMC", "open"), array("CSecuritySessionMC", "close"), array("CSecuritySessionMC", "read"), array("CSecuritySessionMC", "write"), array("CSecuritySessionMC", "destroy"), array("CSecuritySessionMC", "gc"))) {
             register_shutdown_function("session_write_close");
         }
     } else {
         if (!CSecuritySessionDB::Init()) {
             self::triggerFatalError("Failed to initialize DB session handler");
         }
         //may return false with session.auto_start is set to On
         if (session_set_save_handler(array("CSecuritySessionDB", "open"), array("CSecuritySessionDB", "close"), array("CSecuritySessionDB", "read"), array("CSecuritySessionDB", "write"), array("CSecuritySessionDB", "destroy"), array("CSecuritySessionDB", "gc"))) {
             register_shutdown_function("session_write_close");
         }
     }
 }
示例#2
0
 /**
  * @return string
  */
 public static function CleanUpAgent()
 {
     $maxlifetime = intval(ini_get("session.gc_maxlifetime"));
     if ($maxlifetime && !CSecuritySessionMC::isStorageEnabled()) {
         CSecuritySessionDB::gc($maxlifetime);
     }
     return self::GC_AGENT_NAME;
 }
示例#3
0
 function Init()
 {
     if (defined("BX_SECURITY_SESSION_MEMCACHE_HOST") && CSecuritySessionMC::Init()) {
         //may return false with session.auto_start is set to On
         if (session_set_save_handler(array("CSecuritySessionMC", "open"), array("CSecuritySessionMC", "close"), array("CSecuritySessionMC", "read"), array("CSecuritySessionMC", "write"), array("CSecuritySessionMC", "destroy"), array("CSecuritySessionMC", "gc"))) {
             register_shutdown_function("session_write_close");
         }
     } elseif (CSecuritySessionDB::Init()) {
         //may return false with session.auto_start is set to On
         if (session_set_save_handler(array("CSecuritySessionDB", "open"), array("CSecuritySessionDB", "close"), array("CSecuritySessionDB", "read"), array("CSecuritySessionDB", "write"), array("CSecuritySessionDB", "destroy"), array("CSecuritySessionDB", "gc"))) {
             register_shutdown_function("session_write_close");
         }
     }
 }
示例#4
0
 /**
  * @param string $id - session id, must be valid hash
  * @return string
  */
 public static function read($id)
 {
     if (!self::isValidId($id)) {
         return "";
     }
     if (!self::$isReadOnly && !SessionTable::lock($id, 60)) {
         CSecuritySession::triggerFatalError('Unable to get session lock within 60 seconds.');
     }
     self::$sessionId = $id;
     $sessionRow = SessionTable::getRow(array('select' => array('SESSION_DATA'), 'filter' => array('=SESSION_ID' => $id)));
     if ($sessionRow && isset($sessionRow['SESSION_DATA'])) {
         return $sessionRow['SESSION_DATA'];
     }
     return '';
 }
示例#5
0
 /**
  * @return bool
  */
 public static function Init()
 {
     self::$isReadOnly = defined('BX_SECURITY_SESSION_READONLY');
     return CSecurityDB::Init();
 }