Ich kann nicht herausfinden, wie SecurityServiceProvider
in Silex
zu verwenden. Meine Konfiguration ist:Silex SecurityServiceProvider löst aus, der Identifikator "security.authentication_providers" ist nicht definiert. '
$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());
Das gerade wirft:
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Identifier "security.authentication_providers" is not defined.'
Gemäß der Dokumentation in einigen Fällen, wenn Sie Sicherheitsfunktionen außerhalb der Bearbeitung eines Antrags zugreifen möchten, müssen Sie $app->boot();
nennen, aber diese ist nicht meine Situation.
Wenn ich rufe $app->boot();
vor $app->register(...)
es keine Ausnahme aus, aber es ist wahrscheinlich nicht booten, weil dann bei der Erzeugung von Login-Formular Zweig wirft:
Unable to generate a URL for the named route "_admin_login_check" as such route does not exist.
Da ist an issue a few months ago mit wahrscheinlich dem gleichen Problem, aber es ist geschlossen also ich denke, es sollte jetzt behoben werden
Vielleicht nicht zu Ihrem Problem im Zusammenhang, aber sie erfüllen nicht mit einem der beiden:
Um in meinen Vorlagen trans zu verwenden Ich habe eine I18nExtension für mich die Eigenschaft Syntax verwenden, um noch umgesetzt goldene Regeln (sie sind in den Dokumenten angegeben): Ihr Login-Pfad MUSS außerhalb des geschützten Bereichs definiert werden. Dein ist bei/_admin/und dein eingeschränkter Bereich ist bei /_admin/.+, also definierst du ihn nicht außerhalb. – mTorres
Ich glaube nicht. Ausdruck '/ _admin /.+' passt nicht zu '/ _admin /' Pfad, also '/ _admin /' ist außerhalb des eingeschränkten Bereichs. – martin