Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP9+Symfony] nie zahashowane hasło
dopelganger
post 29.12.2015, 09:40:43
Post #1





Grupa: Zarejestrowani
Postów: 236
Pomógł: 0
Dołączył: 27.10.2012

Ostrzeżenie: (0%)
-----


cześć

kiedy edytuje w cmsie (CRUD) użytkownika: hasło zapisuje do bazy nie zahashowane :/

a w pliku security.yml mam:

  1. security:
  2. encoders:
  3. FOS\UserBundle\Model\UserInterface: sha512


na stronie -edycja profilu- zapisuje prawidłowo.

Prosze o pomoc.
Go to the top of the page
+Quote Post
Forti
post 29.12.2015, 10:30:33
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Pokaż kod akcji w controller smile.gif Musisz hasło kodować używając odpowiedniego komponentu w symfony. Samo nigdy nic się nie dzieje.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
dopelganger
post 29.12.2015, 10:37:19
Post #3





Grupa: Zarejestrowani
Postów: 236
Pomógł: 0
Dołączył: 27.10.2012

Ostrzeżenie: (0%)
-----


Cytat(Forti @ 29.12.2015, 10:30:33 ) *
Pokaż kod akcji w controller smile.gif Musisz hasło kodować używając odpowiedniego komponentu w symfony. Samo nigdy nic się nie dzieje.


  1. /**
  2.   * Displays a form to edit an existing User entity.
  3.   *
  4.   * @Route("/{id}/edit", name="backend_cms_users_edit")
  5.   * @Method("GET")
  6.   * @Template()
  7.   */
  8. public function editAction($id)
  9. {
  10. $em = $this->getDoctrine()->getManager();
  11.  
  12. $entity = $em->getRepository('UserBundle:User')->find($id);
  13.  
  14. if (!$entity) {
  15. throw $this->createNotFoundException('Unable to find User entity.');
  16. }
  17.  
  18. $editForm = $this->createEditForm($entity);
  19. $deleteForm = $this->createDeleteForm($id);
  20.  
  21. return array(
  22. 'entity' => $entity,
  23. 'edit_form' => $editForm->createView(),
  24. 'delete_form' => $deleteForm->createView(),
  25. );
  26. }
  27.  
  28. /**
  29.   * Creates a form to edit a User entity.
  30.   *
  31.   * @param User $entity The entity
  32.   *
  33.   * @return \Symfony\Component\Form\Form The form
  34.   */
  35. private function createEditForm(User $entity)
  36. {
  37. $form = $this->createForm(new UserType(), $entity, array(
  38. 'action' => $this->generateUrl('backend_cms_users_update', array('id' => $entity->getId())),
  39. 'method' => 'PUT',
  40. ));
  41.  
  42. $form->add('submit', 'submit', array('label' => 'ZAPISZ'));
  43.  
  44. return $form;
  45. }
  46. /**
  47.   * Edits an existing User entity.
  48.   *
  49.   * @Route("/{id}", name="backend_cms_users_update")
  50.   * @Method("PUT")
  51.   * @Template("UserBundle:User:edit.html.twig")
  52.   */
  53. public function updateAction(Request $request, $id)
  54. {
  55. $em = $this->getDoctrine()->getManager();
  56.  
  57. $entity = $em->getRepository('UserBundle:User')->find($id);
  58.  
  59. if (!$entity) {
  60. throw $this->createNotFoundException('Unable to find User entity.');
  61. }
  62.  
  63. $deleteForm = $this->createDeleteForm($id);
  64. $editForm = $this->createEditForm($entity);
  65. $editForm->handleRequest($request);
  66.  
  67. if ($editForm->isValid()) {
  68. $em->flush();
  69.  
  70. return $this->redirect($this->generateUrl('backend_cms_users_edit', array('id' => $id)));
  71. }
  72.  
  73. return array(
  74. 'entity' => $entity,
  75. 'edit_form' => $editForm->createView(),
  76. 'delete_form' => $deleteForm->createView(),
  77. );
  78. }
Go to the top of the page
+Quote Post
Forti
post 29.12.2015, 13:21:16
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


No to przecież masz przyczyne... Hasło nie jest zakodowane ponieważ nigdzie go nie kodujesz.

  1. $encoder = $this->get('security.encoder_factory')->getEncoder($user);
  2. $encodedPass = $encoder->encodePassword($password, $user->getSalt());




--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
dopelganger
post 29.12.2015, 13:39:04
Post #5





Grupa: Zarejestrowani
Postów: 236
Pomógł: 0
Dołączył: 27.10.2012

Ostrzeżenie: (0%)
-----


Cytat(Forti @ 29.12.2015, 13:21:16 ) *
No to przecież masz przyczyne... Hasło nie jest zakodowane ponieważ nigdzie go nie kodujesz.

  1. $encoder = $this->get('security.encoder_factory')->getEncoder($user);
  2. $encodedPass = $encoder->encodePassword($password, $user->getSalt());


hmm, dalej nic, "błąd serwera" , zapisałem coś takiego:

  1. $plainTextPassword = $this->get('request')->request->get('password');
  2. $user = new Test\UserBundle\Entity\User;
  3. $encoder = $this->get('security.encoder_factory')->getEncoder($user);
  4. $encodedPass = $encoder->encodePassword($plainTextPassword, $user->getSalt());

Go to the top of the page
+Quote Post
Forti
post 29.12.2015, 13:48:17
Post #6





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Jaki konkretnie błąd?
Zaglądałeś wogóle w dokumentacje?

http://symfony.com/blog/new-in-symfony-2-6...ssword-encoding


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
dopelganger
post 29.12.2015, 14:44:03
Post #7





Grupa: Zarejestrowani
Postów: 236
Pomógł: 0
Dołączył: 27.10.2012

Ostrzeżenie: (0%)
-----


Cytat(Forti @ 29.12.2015, 13:48:17 ) *
Jaki konkretnie błąd?
Zaglądałeś wogóle w dokumentacje?

http://symfony.com/blog/new-in-symfony-2-6...ssword-encoding


no własnie skopiowałem to z dokumentacji ...

a błąd:
"Błąd serwera

Wystąpił błąd podczas pobierania http://...web/app_dev.php/cms/users/24 przez witrynę. Zasób jest niedostępny z powodu przeprowadzanej konserwacji lub nieprawidłowej konfiguracji.
Odśwież tę stronę.

Naciśnij przycisk odświeżania, aby ponownie wysłać dane niezbędne do wczytania strony."


dobra udąło mi sie to sklecić, wklejam gdyby ktoś kiedyś potrzebował smile.gif


  1. $user = new User();
  2. $user= $editForm->getData();
  3. $pwd=$user->getPassword();
  4. $encoder=$this->container->get('security.password_encoder');
  5. $pwd=$encoder->encodePassword($user, $pwd);
  6. $user->setPassword($pwd);



zamykamy temat
Go to the top of the page
+Quote Post
Forti
post 29.12.2015, 19:39:23
Post #8





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


Nie sądzisz że to jest bezsensu? smile.gif

  1. $user = new User();
  2. $user = $editForm->getData();


najpierw tworzysz Form do którego przypisujesz obiekt User(). Nie musisz go tworzyć drugi raz.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 21:37