class MetadataBag in Drupal 9
Same name and namespace in other branches
- 8 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
3 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 
- SessionManagerTest.php in core/tests/ Drupal/ Tests/ Core/ Session/ SessionManagerTest.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}
   */
  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());
  }
  /**
   * Clear the CSRF token seed.
   */
  public function clearCsrfTokenSeed() {
    @trigger_error('Calling ' . __METHOD__ . '() is deprecated in drupal:9.2.0 and will be removed in drupal:10.0.0. Use \\Drupal\\Core\\Session\\MetadataBag::stampNew() instead. See https://www.drupal.org/node/3187914', E_USER_DEPRECATED);
    unset($this->meta[static::CSRF_TOKEN_SEED]);
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| MetadataBag:: | public | function | Clear the CSRF token seed. | |
| MetadataBag:: | constant | The key used to store the CSRF token seed in the session. | ||
| MetadataBag:: | public | function | Get the CSRF token seed. | |
| MetadataBag:: | public | function | Set the CSRF token seed. | |
| MetadataBag:: | public | function | ||
| MetadataBag:: | public | function | Constructs a new metadata bag instance. | 
