Я выполняю некоторое функциональное тестирование в моем приложении Symfony2 и хочу заявить о безопасности контроллера, проверив, что только пользователи с соответствующими ролями могут получить доступ к действиям моего контроллера. Я настроил двух пользователей с разными ролями, которые проходят аутентификацию с базовыми учетными данными:
providers:
in_memory:
users:
basic: { password: basic, roles: ROLE_BASIC }
admin: { password: admin, roles: ROLE_ADMIN }
Я не хочу жестко кодировать этих пользователей в каждом тесте, который я пишу (я буду много писать). В идеале я хотел бы получить подробную информацию о пользователях, которые я определил в моей конфигурации, из контейнера. Это возможно? И.Е. вместо этого:
$crawler = $client->request('GET', '/inventory/index', array(), array(),
array(
'PHP_AUTH_USER' => 'admin',
'PHP_AUTH_PW' => 'admin'
));
Я хочу сделать это:
// Get the user details from the container
$users = $this->container->get('something');
$user = $users['admin'];
$crawler = $client->request('GET', '/inventory/index', array(), array(),
array(
'PHP_AUTH_USER' => $user->getUsername(),
'PHP_AUTH_PW' => $user->getPassword()
));