У меня проблема с токеном, когда я создаю функциональные тесты в Symfony 4.2.
Проблема создается, когда я взаимодействую с формой, используя объект искателя. Сначала я создаю токен, который позволит мне войти в приложение. Токен выполняет свою функцию, когда он входит в действие, в котором требуются разрешения, но во время выполнения кода я сталкиваюсь с if, в котором он оценивается с помощью «isGranted», если у него снова есть определенное разрешение на вход или если он делаетне проходите мимо. В тот момент, когда вы должны это оценить, токен теряется. Почему это происходит? Может ли файл безопасности быть плохо настроен? ...
public function addCriteriosPropios ()
{
try {
if ($this->security->isGranted('ROLE_ACCESS')) {
return;
} else {
...
}
} catch (\Throwable $e) {
echo $e;
}
}
Test Code
public function testBotonBuscar() {
$this->logIn();
$crawler = $this->client->request('POST', '/Comm/buscador');
$form = $crawler->selectButton('Buscar')->form();
$form['exp']->setValue('');
$this->client->submit($form);
}
protected function loginIn() {
$firewall = 'main';
$token = new UsernamePasswordToken($this->usuarioTest, null, $firewall, (array) $roles);
$this->client->getContainer()->get('security.token_storage')->setToken($token);
$session = $this->client->getContainer()->get('session');
$session->set('_security_' . $firewall, serialize($token));
$session->set('cuenta.id', $this->cuentaTest->getId());
$session->set('cliente.id', $this->cuentaTest->getCliente()->getId());
$cookie = new Cookie($session->getName(), $session->getId());
$this->client->getCookieJar()->set($cookie);
$session->save();
}
Произошел 1 сбой:
1) App\Tests\Controller\Comm\BuscadorControllerTest::testBotonBuscar
Не удалось утверждать, что исключение типа "Исключение" соответствует ожидаемому исключению "Symfony\Component\Security\Core\Exception\AccessDeniedException
». Сообщение было: «
Хранилище токенов не содержит токена аутентификации. Одна из возможных причин может заключаться в том, что для этого URL не настроен брандмауэр». по адресу /var/www/html/wetender/vendor/symfony/security-core/Authorization/AuthorizationChecker.php:49
/var/www/html/wetender/vendor/symfony/security-core/Security.php:70
/var/www/html/wetender/src/Utils/LicitacionesUtils.php:125
/var/www/html/wetender/src/Utils/CommUtils.php:269
/var/www/html/wetender/src/Controller/Comm/BuscadorController.php:99
/var/www/html/wetender/vendor/symfony/http-kernel/HttpKernel.php:150
/var/www/html/wetender/vendor/symfony/http-kernel/HttpKernel.php:67
/var/www/html/wetender/vendor/symfony/http-kernel/Kernel.php:198
/var/www/html/wetender/vendor/symfony/http-kernel/Client.php:68
/var/www/html/wetender/vendor/symfony/framework-bundle/Client.php:131
/var/www/html/wetender/vendor/symfony/browser-kit/Client.php:405
/var/www/html/wetender/vendor/symfony/browser-kit/Client.php:325
/var/www/html/wetender/tests/Controller/Comm/BuscadorControllerTest.php:116