La configuration du pare-feu est la suivante :
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
secured_area:
pattern: ^/
login_form: ~
Après la connexion, à l'exception de la page /login, d'autres pages peuvent obtenir les informations actuelles de l'utilisateur via $this->getUser()
,
Comment puis-je obtenir les informations actuelles de l'utilisateur sur la page /login ?
J'ai résolu le problème en fonction de la réponse, voici mon contenu security.yml :
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
firewalls:
# login_firewall:
# pattern: ^/login$
# anonymous: ~
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: login
check_path: login_check
logout:
path: /logout
target: /
access_control:
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_USER }
providers:
in_memory:
memory:
users:
kevin: { password: kevinpass, roles: 'ROLE_USER' }
admin: { password: adminpass, roles: 'ROLE_ADMIN' }
encoders:
Symfony\Component\Security\Core\User\User: plaintext
En même temps, j'ai aussi trouvé une question similaire sur SO - lien
Merci pour la réponse les amis !
Vous pouvez supprimer le pare-feu de connexion et le configurer en acl :