Niestety nijak mi to nie idzie.
Entity User.php mam zrobione jak w przykładzie. Tak samo baze danych. Próbowałem hasła trzymać jako bcrypt, md5 oraz plaintext i nic nie działa.
Plik security.yml
Kod
security:
encoders:
AppBundle\Entity\User: plaintext
role_hierarchy:
ROLE_ADMIN: [ROLE_USER]
providers:
our_db_provider:
entity: { class: AppBundle:User, property: username }
firewalls:
main:
pattern: ^/
anonymous: ~
provider: our_db_provider
form_login:
login_path: /
check_path: /
logout:
path: /logout
target: /
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
encoders:
AppBundle\Entity\User: plaintext
role_hierarchy:
ROLE_ADMIN: [ROLE_USER]
providers:
our_db_provider:
entity: { class: AppBundle:User, property: username }
firewalls:
main:
pattern: ^/
anonymous: ~
provider: our_db_provider
form_login:
login_path: /
check_path: /
logout:
path: /logout
target: /
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
W formularzu przekazuję zmienne jako _username oraz _password czyli zgodnie z dokumentacją.
Kontroler do obsługi:
public function indexAction(Request $request) { $session = $request->getSession(); $authenticationUtils = $this->get('security.authentication_utils'); $error = $authenticationUtils->getLastAuthenticationError(); $lastUsername = $authenticationUtils->getLastUsername(); if ($this->get('security.authorization_checker')->isGranted('ROLE_ADMIN')){ return $this->redirect($this->generateUrl('admin_dashboard')); } return $this->render('default/index.html.twig', [ 'body_id' => "simple-page", 'last_username' => $lastUsername, 'error' => $error ]); }
Jak podam błędne dane do logowania to otrzymuję
Kod
exception 'Symfony\Component\Security\Core\Exception\BadCredentialsException' with message 'Bad credentials.'
Jak podam poprawne to nie przekierowuje mnie do admin_dashboard i nie zwraca żadnego błędu. W debugu dalej jestem jako anonymous
W bazie mam rolę ROLE_ADMIN i takie też mam w getRoles zwracane w entity User.
Co jest nie tak?