Я пишу тесты в Symfony и использую светильники для загрузки тестовых данных в базу данных. Одна из объектов, которые мне нужно создать, - это пользователь, который имеет поле пароля. В производстве пароли используются с использованием argon2id, прежде чем храниться в базе данных. Поскольку это только для тестирования? У меня есть проблема при прохождении параметра энкодера внутри приспособления, расположенного в абстрактном классе < /p>
fithlure < /p>
class AuthUserFixture extends Fixture
{
private UserPasswordEncoderInterface $encoder;
public function __construct(UserPasswordEncoderInterface $encoder) {}
/**
* @inheritDoc
*/
public function load(ObjectManager $manager): void {
$this->loadUsers($manager);
}
private function loadUsers(ObjectManager $manager): void
{
foreach ($this->getUserData() as [
$username, $usernameCanonical, $email, $emailCanonical, $enabled, $password, $roles
]) {
$user = new User();
$user->setUsername($username);
$user->setUsernameCanonical($usernameCanonical);
$user->setEmail($email);
$user->setEmailCanonical($emailCanonical);
$user->setEnabled($enabled);
$user->setRoles($roles);
$password = $this->encoder->encodePassword($user, $password);
$user->setPassword($password);
$manager->persist($user);
$this->addReference($username, $user);
}
$manager->flush();
}
private function getUserData(): array
{
// $userData = [$username, $usernameCanonical, $email, $emailCanonical, $enabled, $password, $roles];
return [
[
'User',
'user',
'usere@gmail.com',
'user@gmail.com',
true,
'7jKuXn97ReDK',
[User::ADMIN_DASHBOARD_ACCESS_ROLES_HAYSTACK]
],
];
}
}
< /code>
абстрактный класс < /p>
/** @var KernelBrowser $client */
protected KernelBrowser $client;
/** @var EntityManagerInterface */
private $entityManager;
public static function setUpBeforeClass(): void
{
$kernel = static::createKernel();
$kernel->boot();
$entityManager = $kernel->getContainer()->get('doctrine')->getManager();
$loader = new Loader();
foreach (self::getFixtures() as $fixture) {
$loader->addFixture($fixture);
}
$purger = new ORMPurger();
$purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
$executor = new ORMExecutor($entityManager, $purger);
$executor->execute($loader->getFixtures());
}
protected function setUp(): void
{
parent::setUp();
$this->client = static::createClient();
$this->client->disableReboot();
$this->client->setServerParameter('HTTP_HOST', '172.19.0.1');
$this->entityManager = $this->client->getContainer()->get('doctrine.orm.entity_manager');
$this->entityManager->beginTransaction();
$this->entityManager->getConnection()->setAutoCommit(false);
}
protected function tearDown(): void
{
if ($this->entityManager->getConnection()->isTransactionActive()) {
try {
$this->entityManager->rollback();
} catch (\Exception $e) {
echo "Rollback error: " . $e->getMessage();
}
}
$this->entityManager->clear();
$this->entityManager->close();
parent::tearDown();
}
protected function apiLoginAs(string $username, string $password): void
{
$expectedBase64 = base64_encode("$username:$password");
$authHeader = 'Basic ' . $expectedBase64;
$this->client->setServerParameter('HTTP_Authorization', $authHeader);
}
private static function getFixtures(): iterable
{
return [
new AuthUserFixture(),
];
}
< /code>
Я не до конца понимаю, является ли реализация правильной. И как правильно передать параметр. Ошибка также произошла во время его инициализации.
Что касается Hasher, это именно то, что Encoder - userPassWordEncoderInterface $ Encoder
Подробнее здесь: https://stackoverflow.com/questions/794 ... he-databas
Должен ли я хэшировать пароль в приспособлении, если он хранится как argon2i в базе данных? ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Должен ли я хэшировать пароль в приспособлении, если он хранится как argon2i в базе данных?
Anonymous » » в форуме Php - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Должен ли я хэшировать пароль в приспособлении, если он хранится как argon2i в базе данных?
Anonymous » » в форуме Php - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу проверить, что хранится в моей базе данных данных основной базы данных?
Anonymous » » в форуме IOS - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-