Я не могу понять, как использовать SecurityServiceProvider
в Silex
. Моя конфигурация:
$app['security.firewalls'] = array(
'admin' => array(
'pattern' => '^/_admin/.+',
'form' => array('login_path' => '/_admin/', 'check_path' => '/_admin/login_check'),
'logout' => array('logout_path' => '/_admin/logout'),
'users' => array(
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsR...'),
),
),
);
$app->register(new Silex\Provider\SecurityServiceProvider());
Это просто бросает:
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Identifier "security.authentication_providers" is not defined.'
Согласно документации, в некоторых случаях, когда вы хотите получить доступ к функциям безопасности за пределами обработки запроса, вы должны вызвать $app->boot();
, но это не моя ситуация.
Если я вызову $app->boot();
до $app->register(...)
, это не вызовет никаких исключений. но, вероятно, он вообще не загружается, потому что тогда при создании формы входа Twig выдает:
Unable to generate a URL for the named route "_admin_login_check" as such route does not exist.
Несколько месяцев назад была проблема, вероятно, с той же проблемой, но она закрыта, так что я думаю должно быть исправлено сейчас
/_admin/.+
не соответствует пути/_admin/
, поэтому/_admin/
находится вне зоны ограниченного доступа. - person martin   schedule 12.02.2014