Salut tout le monde !
Je suis actuellement sur un nouveau projet et j'ai décidé de lancer sous Symfony dans l'optique de me former avec ce framework très demandé. Actuellement j'en suis à l'encodage des mots de passe, j'ai décidé de ne pas utiliser FOSUser et j'ai donc gérer ma sécurité sauf que la je bloque totalement sur l'encodage ...
J'ai décidé d'encoder les mots de passe en bcrypt j'ai donc dans mon security.yml :
L'encodage, pointe directement vers mon entité User qui s'occupe de mes utilisateurs si j'ai bien compris.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4encoders: VV\UserBundle\Entity\User: algorithm: bcrypt cost: 12
J'ai ensuite fait un implants UserInterface à mon entité avec le getSalt qui retour null et la fonction eraseCredentials.
Dans mon Controller j'ai donc :
J'ai suivie à la lettre les docs suivantes pour réaliser, du moins pour essayer de réaliser, l'encodage : https://symfony.com/doc/current/security.html et http://symfony.com/doc/current/secur..._encoding.html
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 public function add_userAction(Request $request, UserPasswordEncoderInterface $passwordEncoder) { $em = $this->getDoctrine()->getManager(); $user = new User(); $form = $this->get('form.factory')->create(userType::class, $user); $form->handleRequest($request); if ($form->isSubmitted() && $request->isMethod('POST')) { $password = $passwordEncoder->encodePassword($user, $user->getPlainPassword()); $user->setPassword($password); $em->persist($user); $em->flush(); return $this->redirectToRoute('vv_ecommerce_back_view_user', array('id' => $user->getId())); } ...
Mais la je sèche complètement et ça me déprime un peu car je n'avance pas ... Et je trouve que l'encodage est bien compliqué sur ce framework (surement parce que je n'ai pas bien saisie la marche à suivre ? ) et quand j'essaye d'accéder à ma page d'ajout d'utilisateur, je tombe sur cette erreur :
Et je ne comprends strictement pas pourquoi Symfony me sort cette erreur, je viens de passer l'après-midi a regarder différentes docs/tutos (et ce n'est pas si simple, surtout pour les dernières versions), je me tourne donc vers vous pour trouver un peu d'aide ... je pense avoir suivie correctement les tutos et donc je ne comprends pas trop pourquoi ça ne marche point.RuntimeException:
Controller "VV\EcommerceBundle\Controller\BackUserController::add_userAction()" requires that you provide a value for the "$passwordEncoder" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one.
at var\cache\dev\classes.php:4086
at Symfony\Component\HttpKernel\Controller\ArgumentResolver->getArguments(object(Request), array(object(BackUserController), 'add_userAction'))
(vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver.php:38)
at Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver->getArguments(object(Request), array(object(BackUserController), 'add_userAction'))
(var\cache\dev\classes.php:4448)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(var\cache\dev\classes.php:4408)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php:171)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(web\app_dev.php:29)
Merci d'avance pour avoir pris le temps de me lire ainsi que de me répondre !
Partager