Bonjour,
J'essaie de mettre en place un bundle d'authentification correspondant à la politique de sécurité de ma boite.
Pour ce faire, j'ai mis en place ce qui est définit dans les Howto "create au custom user provider" et "create a custom authentication provider" et je dois dire que j'ai bien du mal à m'en sortir.
En particulier, lorsque je lance mon appli, je récupère un message :
Ce message d'erreur n'est pas très clair pour moi.RuntimeException: The parent definition "accessmaster.security.authentication.provider" defined for definition "security.authentication.provider.accessmaster.accessmaster_secured" does not exist.
Apparemment, accessmaster_secured est le nom du firewall définit dans /app/config.security.yml
Cette erreur à l'air de venir de ma SecurityFactory mais je n'ai pas trouvé dans les différents tutos que j'ai regardé d'informations claires à ce sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 security: # ... factories: - "%kernel.root_dir%/../src/Cnamts/SecurityBundle/Resources/config/security_factories.yml" # ... firewalls: accessmaster_secured: pattern: ^/ accessmaster: true
Merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 // src/Acme/SecurityBundle/DependencyInjection/Security/Factory/AccessMasterFactory.php namespace Acme\SecurityBundle\DependencyInjection\Security\Factory; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\DefinitionDecorator; use Symfony\Component\Config\Definition\Builder\NodeDefinition; use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\SecurityFactoryInterface; class AccessMasterFactory implements SecurityFactoryInterface { public function create(ContainerBuilder $container, $id, $config, $userProvider, $defaultEntryPoint) { $providerId = 'security.authentication.provider.accessmaster.'.$id; $container->setDefinition($providerId, new DefinitionDecorator('accessmaster.security.authentication.provider')) ->replaceArgument(0, new Reference($userProvider)); $listenerId = 'security.authentication.listener.accessmaster.'.$id; $listener = $container->setDefinition($listenerId, new DefinitionDecorator('accessmaster.security.authentication.listener')); return array($providerId, $listenerId, $defaultEntryPoint); } // ... public function getKey() { return 'accessmaster'; } // ... }
Partager