class MetadataBag
Same name in other branches
- 9 core/lib/Drupal/Core/Session/MetadataBag.php \Drupal\Core\Session\MetadataBag
- 8.9.x core/lib/Drupal/Core/Session/MetadataBag.php \Drupal\Core\Session\MetadataBag
- 11.x core/lib/Drupal/Core/Session/MetadataBag.php \Drupal\Core\Session\MetadataBag
Provides a container for application specific session metadata.
Hierarchy
- class \Drupal\Core\Session\MetadataBag extends \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag
Expanded class hierarchy of MetadataBag
2 files declare their use of MetadataBag
- CsrfTokenGenerator.php in core/
lib/ Drupal/ Core/ Access/ CsrfTokenGenerator.php - MetadataBagTest.php in core/
tests/ Drupal/ Tests/ Core/ Session/ MetadataBagTest.php
1 string reference to 'MetadataBag'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses MetadataBag
File
-
core/
lib/ Drupal/ Core/ Session/ MetadataBag.php, line 12
Namespace
Drupal\Core\SessionView source
class MetadataBag extends SymfonyMetadataBag {
/**
* The key used to store the CSRF token seed in the session.
*/
const CSRF_TOKEN_SEED = 's';
/**
* 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);
}
/**
* Set the CSRF token seed.
*
* @param string $csrf_token_seed
* The per-session CSRF token seed.
*/
public function setCsrfTokenSeed($csrf_token_seed) {
$this->meta[static::CSRF_TOKEN_SEED] = $csrf_token_seed;
}
/**
* Get the CSRF token seed.
*
* @return string|null
* The per-session CSRF token seed or null when no value is set.
*/
public function getCsrfTokenSeed() {
if (isset($this->meta[static::CSRF_TOKEN_SEED])) {
return $this->meta[static::CSRF_TOKEN_SEED];
}
}
/**
* {@inheritdoc}
*
* phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn
* @return void
*/
public function stampNew($lifetime = NULL) {
parent::stampNew($lifetime);
// Set the token seed immediately to avoid a race condition between two
// simultaneous requests without a seed.
$this->setCsrfTokenSeed(Crypt::randomBytesBase64());
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
MetadataBag::CSRF_TOKEN_SEED | constant | The key used to store the CSRF token seed in the session. | |
MetadataBag::getCsrfTokenSeed | public | function | Get the CSRF token seed. |
MetadataBag::setCsrfTokenSeed | public | function | Set the CSRF token seed. |
MetadataBag::stampNew | public | function | phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn |
MetadataBag::__construct | public | function | Constructs a new metadata bag instance. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.