⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.45
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
shopware
/
vendor
/
symfony
/
lock
/
Store
/
View File Name :
DatabaseTableTrait.php
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Lock\Store; use Symfony\Component\Lock\Exception\InvalidArgumentException; use Symfony\Component\Lock\Exception\InvalidTtlException; use Symfony\Component\Lock\Key; /** * @internal */ trait DatabaseTableTrait { private $table = 'lock_keys'; private $idCol = 'key_id'; private $tokenCol = 'key_token'; private $expirationCol = 'key_expiration'; private $gcProbability; private $initialTtl; private function init(array $options, float $gcProbability, int $initialTtl) { if ($gcProbability < 0 || $gcProbability > 1) { throw new InvalidArgumentException(sprintf('"%s" requires gcProbability between 0 and 1, "%f" given.', __METHOD__, $gcProbability)); } if ($initialTtl < 1) { throw new InvalidTtlException(sprintf('"%s()" expects a strictly positive TTL, "%d" given.', __METHOD__, $initialTtl)); } $this->table = $options['db_table'] ?? $this->table; $this->idCol = $options['db_id_col'] ?? $this->idCol; $this->tokenCol = $options['db_token_col'] ?? $this->tokenCol; $this->expirationCol = $options['db_expiration_col'] ?? $this->expirationCol; $this->gcProbability = $gcProbability; $this->initialTtl = $initialTtl; } /** * Returns a hashed version of the key. */ private function getHashedKey(Key $key): string { return hash('sha256', (string) $key); } private function getUniqueToken(Key $key): string { if (!$key->hasState(__CLASS__)) { $token = base64_encode(random_bytes(32)); $key->setState(__CLASS__, $token); } return $key->getState(__CLASS__); } /** * Prune the table randomly, based on GC probability. */ private function randomlyPrune(): void { if ($this->gcProbability > 0 && (1.0 === $this->gcProbability || (random_int(0, \PHP_INT_MAX) / \PHP_INT_MAX) <= $this->gcProbability)) { $this->prune(); } } }