[Security] fix DI for SimpleFormAuthenticationListener

This commit is contained in:
Tobias Schultze 2014-01-21 10:08:13 +01:00
parent 783a45d0e4
commit b3f5fa9b73
2 changed files with 5 additions and 11 deletions

View File

@ -75,12 +75,10 @@ class FormLoginFactory extends AbstractFactory
{
$listenerId = parent::createListener($container, $id, $config, $userProvider);
if (isset($config['csrf_provider'])) {
$container
->getDefinition($listenerId)
->addArgument(new Reference($config['csrf_provider']))
;
}
$container
->getDefinition($listenerId)
->addArgument(isset($config['csrf_provider']) ? new Reference($config['csrf_provider']) : null)
;
return $listenerId;
}

View File

@ -63,11 +63,6 @@ class SimpleFormFactory extends FormLoginFactory
protected function createListener($container, $id, $config, $userProvider)
{
$listenerId = parent::createListener($container, $id, $config, $userProvider);
$listener = $container->getDefinition($listenerId);
if (!isset($config['csrf_token_generator'])) {
$listener->addArgument(null);
}
$simpleAuthHandlerId = 'security.authentication.simple_success_failure_handler.'.$id;
$simpleAuthHandler = $container->setDefinition($simpleAuthHandlerId, new DefinitionDecorator('security.authentication.simple_success_failure_handler'));
@ -75,6 +70,7 @@ class SimpleFormFactory extends FormLoginFactory
$simpleAuthHandler->replaceArgument(1, new Reference($this->getSuccessHandlerId($id)));
$simpleAuthHandler->replaceArgument(2, new Reference($this->getFailureHandlerId($id)));
$listener = $container->getDefinition($listenerId);
$listener->replaceArgument(5, new Reference($simpleAuthHandlerId));
$listener->replaceArgument(6, new Reference($simpleAuthHandlerId));
$listener->addArgument(new Reference($config['authenticator']));