예제 #1
0
 public function clear()
 {
     if ($this->metadataBag) {
         $this->metadataBag->clear();
     }
     foreach ($this->bags as $bag) {
         $bag->clear();
     }
 }
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (!$this->started) {
         $this->start();
     }
     $this->metadataBag->stampNew($lifetime);
     $this->id = $this->generateId();
     return true;
 }
예제 #3
0
 protected function setUp()
 {
     parent::setUp();
     $this->bag = new MetadataBag();
     $this->array = array(MetadataBag::CREATED => 1234567, MetadataBag::UPDATED => 12345678, MetadataBag::LIFETIME => 0);
     $this->bag->initialize($this->array);
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (null !== $lifetime) {
         ini_set('session.cookie_lifetime', $lifetime);
     }
     if ($destroy) {
         $this->metadataBag->stampNew();
     }
     return session_regenerate_id($destroy);
 }
예제 #5
0
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (null !== $lifetime) {
         ini_set('session.cookie_lifetime', $lifetime);
     }
     if ($destroy) {
         $this->metadataBag->stampNew();
     }
     $isRegenerated = session_regenerate_id($destroy);
     // The reference to $_SESSION in session bags is lost in PHP7 and we need to re-create it.
     // @see https://bugs.php.net/bug.php?id=70013
     $this->loadSession();
     return $isRegenerated;
 }
예제 #6
0
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (!$this->started) {
         $this->start();
     }
     if ($lifetime !== null) {
         $this->options['cookie_lifetime'] = $lifetime;
     }
     if ($destroy) {
         $this->metadataBag->stampNew($lifetime);
         $this->handler->destroy($this->id);
     }
     $this->id = $this->generator->generateId();
     return true;
 }
예제 #7
0
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (null !== $lifetime) {
         ini_set('session.cookie_lifetime', $lifetime);
     }
     if ($destroy) {
         $this->metadataBag->stampNew();
     }
     $ret = session_regenerate_id($destroy);
     // workaround for https://bugs.php.net/bug.php?id=61470 as suggested by David Grudl
     session_write_close();
     $backup = $_SESSION;
     session_start();
     $_SESSION = $backup;
     return $ret;
 }
예제 #8
0
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (!$this->started) {
         $this->start();
     }
     if ($lifetime !== null) {
         $this->options['cookie_lifetime'] = $lifetime;
     }
     if ($destroy) {
         $this->metadataBag->stampNew($lifetime);
         $this->handler->destroy($this->id);
     } else {
         $this->write();
     }
     $this->handler->close();
     $this->id = $this->generator->generateId();
     $this->handler->open(null, $this->name);
     // read is required to make new session data at this point
     $this->handler->read($this->id);
     return true;
 }
예제 #9
0
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     // Cannot regenerate the session ID for non-active sessions.
     if (PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE !== session_status()) {
         return false;
     }
     // Check if session ID exists in PHP 5.3
     if (PHP_VERSION_ID < 50400 && '' === session_id()) {
         return false;
     }
     if (null !== $lifetime) {
         ini_set('session.cookie_lifetime', $lifetime);
     }
     if ($destroy) {
         $this->metadataBag->stampNew();
     }
     $isRegenerated = session_regenerate_id($destroy);
     // The reference to $_SESSION in session bags is lost in PHP7 and we need to re-create it.
     // @see https://bugs.php.net/bug.php?id=70013
     $this->loadSession();
     return $isRegenerated;
 }
 /**
  * {@inheritdoc}
  */
 public function regenerate($destroy = false, $lifetime = null)
 {
     if (null !== $lifetime) {
         ini_set('session.cookie_lifetime', $lifetime);
     }
     if ($destroy) {
         $this->metadataBag->stampNew();
     }
     $ret = session_regenerate_id($destroy);
     // workaround for https://bugs.php.net/bug.php?id=61470 as suggested by David Grudl
     if ('files' === $this->getSaveHandler()->getSaveHandlerName()) {
         session_write_close();
         if (isset($_SESSION)) {
             $backup = $_SESSION;
             session_start();
             $_SESSION = $backup;
         } else {
             session_start();
         }
         $this->loadSession();
     }
     return $ret;
 }
예제 #11
0
 public function testClear()
 {
     $this->bag->clear();
 }
예제 #12
0
 public function testDoesNotSkipLastUsedUpdate()
 {
     $bag = new MetadataBag('', 30);
     $timeStamp = time();
     $created = $timeStamp - 45;
     $sessionMetadata = array(MetadataBag::CREATED => $created, MetadataBag::UPDATED => $created, MetadataBag::LIFETIME => 1000);
     $bag->initialize($sessionMetadata);
     $this->assertEquals($timeStamp, $sessionMetadata[MetadataBag::UPDATED]);
 }
예제 #13
0
 /**
  * Constructs a new metadata bag instance.
  *
  * @param \Drupal\Core\Site\Settings $settings
  *   The settings instance.
  */
 public function __construct(Settings $settings)
 {
     $update_threshold = $settings->get('session_write_interval', 180);
     parent::__construct('_sf2_meta', $update_threshold);
 }