summaryrefslogtreecommitdiff
path: root/vendor/symfony/http-foundation/Session
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-09-07 08:17:24 +0100
committerGreg Roach <fisharebest@webtrees.net>2019-09-07 08:17:24 +0100
commit43e2cc54543d9f79c9805f752e78e25c351646ff (patch)
treef8f252a8f0f6ff6061c177456865102c50a04810 /vendor/symfony/http-foundation/Session
parent4e96702fabf715ae955aafd54002fb5c57a109cf (diff)
downloadwebtrees-43e2cc54543d9f79c9805f752e78e25c351646ff.tar.gz
webtrees-43e2cc54543d9f79c9805f752e78e25c351646ff.tar.bz2
webtrees-43e2cc54543d9f79c9805f752e78e25c351646ff.zip
Update vendor dependencies
Diffstat (limited to 'vendor/symfony/http-foundation/Session')
-rw-r--r--vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php10
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php11
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php10
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php21
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php2
-rw-r--r--vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php2
13 files changed, 40 insertions, 30 deletions
diff --git a/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php b/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php
index 162c4b5295..2cf0743cf9 100644
--- a/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php
+++ b/vendor/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php
@@ -97,7 +97,7 @@ class NamespacedAttributeBag extends AttributeBag
* @param string $name Key name
* @param bool $writeContext Write context, default false
*
- * @return array
+ * @return array|null
*/
protected function &resolveAttributePath($name, $writeContext = false)
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
index defca606ef..78340efbd2 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
@@ -124,7 +124,15 @@ abstract class AbstractSessionHandler implements \SessionHandlerInterface, \Sess
throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', \get_class($this)));
}
$cookie = SessionUtils::popSessionCookie($this->sessionName, $sessionId);
- if (null === $cookie) {
+
+ /*
+ * We send an invalidation Set-Cookie header (zero lifetime)
+ * when either the session was started or a cookie with
+ * the session name was sent by the client (in which case
+ * we know it's invalid as a valid session cookie would've
+ * started the session).
+ */
+ if (null === $cookie || isset($_COOKIE[$this->sessionName])) {
if (\PHP_VERSION_ID < 70300) {
setcookie($this->sessionName, '', 0, ini_get('session.cookie_path'), ini_get('session.cookie_domain'), filter_var(ini_get('session.cookie_secure'), FILTER_VALIDATE_BOOLEAN), filter_var(ini_get('session.cookie_httponly'), FILTER_VALIDATE_BOOLEAN));
} else {
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
index 1db590b360..a399be5fd8 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php
@@ -15,7 +15,7 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
* Memcached based session storage handler based on the Memcached class
* provided by the PHP memcached extension.
*
- * @see http://php.net/memcached
+ * @see https://php.net/memcached
*
* @author Drak <drak@zikula.org>
*/
@@ -40,9 +40,6 @@ class MemcachedSessionHandler extends AbstractSessionHandler
* * prefix: The prefix to use for the memcached keys in order to avoid collision
* * expiretime: The time to live in seconds.
*
- * @param \Memcached $memcached A \Memcached instance
- * @param array $options An associative array of Memcached options
- *
* @throws \InvalidArgumentException When unsupported options are passed
*/
public function __construct(\Memcached $memcached, array $options = [])
@@ -58,7 +55,7 @@ class MemcachedSessionHandler extends AbstractSessionHandler
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function close()
{
@@ -74,7 +71,7 @@ class MemcachedSessionHandler extends AbstractSessionHandler
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function updateTimestamp($sessionId, $data)
{
@@ -102,7 +99,7 @@ class MemcachedSessionHandler extends AbstractSessionHandler
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function gc($maxlifetime)
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php
index 5293d2448a..253d8cb685 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php
@@ -61,7 +61,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function gc($maxlifetime)
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
index 4efaf412a3..db85f06e3e 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php
@@ -56,7 +56,7 @@ class MongoDbSessionHandler extends AbstractSessionHandler
* { "expireAfterSeconds": 0 }
* )
*
- * More details on: http://docs.mongodb.org/manual/tutorial/expire-data/
+ * More details on: https://docs.mongodb.org/manual/tutorial/expire-data/
*
* If you use such an index, you can drop `gc_probability` to 0 since
* no garbage-collection is required.
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
index fbc25c3ef3..bdfc9d819e 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php
@@ -23,7 +23,7 @@ class NativeFileSessionHandler extends \SessionHandler
* Default null will leave setting as defined by PHP.
* '/path', 'N;/path', or 'N;octal-mode;/path
*
- * @see https://php.net/manual/session.configuration.php#ini.session.save-path for further details.
+ * @see https://php.net/session.configuration#ini.session.save-path for further details.
*
* @throws \InvalidArgumentException On invalid $savePath
* @throws \RuntimeException When failing to create the save directory
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php
index 8d193155b0..3ba9378ca7 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php
@@ -67,7 +67,7 @@ class NullSessionHandler extends AbstractSessionHandler
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function gc($maxlifetime)
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
index a3877ef4c7..4f770c14ed 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php
@@ -32,7 +32,7 @@ namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
* Saving it in a character column could corrupt the data. You can use createTable()
* to initialize a correctly defined table.
*
- * @see http://php.net/sessionhandlerinterface
+ * @see https://php.net/sessionhandlerinterface
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Michael Williams <michael.williams@funsational.com>
@@ -286,7 +286,7 @@ class PdoSessionHandler extends AbstractSessionHandler
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function gc($maxlifetime)
{
@@ -538,7 +538,7 @@ class PdoSessionHandler extends AbstractSessionHandler
* PDO::rollback or PDO::inTransaction for SQLite.
*
* Also MySQLs default isolation, REPEATABLE READ, causes deadlock for different sessions
- * due to http://www.mysqlperformanceblog.com/2013/12/12/one-more-innodb-gap-lock-to-avoid/ .
+ * due to https://percona.com/blog/2013/12/12/one-more-innodb-gap-lock-to-avoid/ .
* So we change it to READ COMMITTED.
*/
private function beginTransaction()
@@ -850,7 +850,7 @@ class PdoSessionHandler extends AbstractSessionHandler
break;
case 'sqlsrv' === $this->driver && version_compare($this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION), '10', '>='):
// MERGE is only available since SQL Server 2008 and must be terminated by semicolon
- // It also requires HOLDLOCK according to http://weblogs.sqlteam.com/dang/archive/2009/01/31/UPSERT-Race-Condition-With-MERGE.aspx
+ // It also requires HOLDLOCK according to https://weblogs.sqlteam.com/dang/2009/01/31/upsert-race-condition-with-merge/
$mergeSql = "MERGE INTO $this->table WITH (HOLDLOCK) USING (SELECT 1 AS dummy) AS src ON ($this->idCol = ?) ".
"WHEN NOT MATCHED THEN INSERT ($this->idCol, $this->dataCol, $this->lifetimeCol, $this->timeCol) VALUES (?, ?, ?, ?) ".
"WHEN MATCHED THEN UPDATE SET $this->dataCol = ?, $this->lifetimeCol = ?, $this->timeCol = ?;";
@@ -863,7 +863,7 @@ class PdoSessionHandler extends AbstractSessionHandler
"ON CONFLICT ($this->idCol) DO UPDATE SET ($this->dataCol, $this->lifetimeCol, $this->timeCol) = (EXCLUDED.$this->dataCol, EXCLUDED.$this->lifetimeCol, EXCLUDED.$this->timeCol)";
break;
default:
- // MERGE is not supported with LOBs: http://www.oracle.com/technetwork/articles/fuecks-lobs-095315.html
+ // MERGE is not supported with LOBs: https://oracle.com/technetwork/articles/fuecks-lobs-095315.html
return null;
}
diff --git a/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php b/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php
index 83a1f2c063..fab8e9a16d 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php
@@ -94,7 +94,7 @@ class StrictSessionHandler extends AbstractSessionHandler
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function gc($maxlifetime)
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
index 9e03bfa41b..5bdf5e2ac2 100644
--- a/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
+++ b/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php
@@ -60,7 +60,7 @@ class NativeSessionStorage implements SessionStorageInterface
*
* List of options for $options array with their defaults.
*
- * @see http://php.net/session.configuration for options
+ * @see https://php.net/session.configuration for options
* but we omit 'session.' from the beginning of the keys for convenience.
*
* ("auto_start", is not supported as it tells PHP to start a session before
@@ -223,7 +223,7 @@ class NativeSessionStorage implements SessionStorageInterface
$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
+ // @see https://bugs.php.net/70013
$this->loadSession();
if (null !== $this->emulateSameSite) {
@@ -241,6 +241,7 @@ class NativeSessionStorage implements SessionStorageInterface
*/
public function save()
{
+ // Store a copy so we can restore the bags in case the session was not left empty
$session = $_SESSION;
foreach ($this->bags as $bag) {
@@ -266,7 +267,11 @@ class NativeSessionStorage implements SessionStorageInterface
session_write_close();
} finally {
restore_error_handler();
- $_SESSION = $session;
+
+ // Restore only if not empty
+ if ($_SESSION) {
+ $_SESSION = $session;
+ }
}
$this->closed = true;
@@ -355,7 +360,7 @@ class NativeSessionStorage implements SessionStorageInterface
*
* @param array $options Session ini directives [key => value]
*
- * @see http://php.net/session.configuration
+ * @see https://php.net/session.configuration
*/
public function setOptions(array $options)
{
@@ -401,10 +406,10 @@ class NativeSessionStorage implements SessionStorageInterface
* constructor, for a template see NativeFileSessionHandler or use handlers in
* composer package drak/native-session
*
- * @see http://php.net/session-set-save-handler
- * @see http://php.net/sessionhandlerinterface
- * @see http://php.net/sessionhandler
- * @see http://github.com/drak/NativeSession
+ * @see https://php.net/session-set-save-handler
+ * @see https://php.net/sessionhandlerinterface
+ * @see https://php.net/sessionhandler
+ * @see https://github.com/zikula/NativeSession
*
* @param \SessionHandlerInterface|null $saveHandler
*
diff --git a/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php b/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
index 09c92483c7..0303729e7b 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php
@@ -31,7 +31,7 @@ abstract class AbstractProxy
/**
* Gets the session.save_handler name.
*
- * @return string
+ * @return string|null
*/
public function getSaveHandlerName()
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php b/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php
index b11cc397a0..e40712d93f 100644
--- a/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php
+++ b/vendor/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php
@@ -76,7 +76,7 @@ class SessionHandlerProxy extends AbstractProxy implements \SessionHandlerInterf
}
/**
- * {@inheritdoc}
+ * @return bool
*/
public function gc($maxlifetime)
{
diff --git a/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php b/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php
index 66e8b33dd2..eeb396a2f1 100644
--- a/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php
+++ b/vendor/symfony/http-foundation/Session/Storage/SessionStorageInterface.php
@@ -77,7 +77,7 @@ interface SessionStorageInterface
* only delete the session data from persistent storage.
*
* Care: When regenerating the session ID no locking is involved in PHP's
- * session design. See https://bugs.php.net/bug.php?id=61470 for a discussion.
+ * session design. See https://bugs.php.net/61470 for a discussion.
* So you must make sure the regenerated session is saved BEFORE sending the
* headers with the new ID. Symfony's HttpKernel offers a listener for this.
* See Symfony\Component\HttpKernel\EventListener\SaveSessionListener.