<p>J'essaie de séparer l'authentification de l'utilisateur de celle de l'administrateur. </p>
<p>J'ai donc créé 2 pare-feu et 2 contrôles d'accès différents. </p>
<p>Mon fichier security.yaml est le suivant :</p>
<pre class="brush:php;toolbar:false;">enable_authenticator_manager : true
mot de passe_hashers :
SymfonyComponentSecurityCoreUserPasswordAuthenticatedUserInterface : 'auto'
fournisseurs:
authentification_propriétaire :
entité:
classe : AppEntityMerchantOwner
propriété : adressee-mail
Authentification d'utilisateur:
entité:
classe : AppEntityUserUser
propriété : adressee-mail
pare-feu :
développeur :
modèle : ^/(_(profiler|wdt)|css|images|js)/
sécurité : faux
utilisateur:
paresseux : vrai
modèle : ^/admin/login/
fournisseur : user_authentication
user_checker : AppSecurityAuthentificableModelChecker
formulaire_login :
fournisseur : user_authentication
default_target_path : app.dashboard.index
use_referer : vrai
use_forward : faux
chemin_de_connexion : app.authorization.admin_login
check_path : app.authorization.admin_login
paramètre_nom_utilisateur : connexion[emailAddress]
paramètre_mot de passe : connexion[mot de passe]
Se déconnecter:
chemin : app.authorization.logout
cible : app.authorization.admin_login
principal:
paresseux : vrai
modèle : ^/
fournisseur : owner_authentication
user_checker : AppSecurityAuthentificableModelChecker
formulaire_login :
fournisseur : owner_authentication
default_target_path : app.dashboard.index
use_referer : vrai
use_forward : faux
chemin_de_connexion : app.authorization.login
check_path : app.authorization.login
paramètre_nom_utilisateur : connexion[emailAddress]
paramètre_mot de passe : connexion[mot de passe]
Se déconnecter:
chemin : app.authorization.logout
cible : app.authorization.login
contrôle d'accès:
- { chemin : ^/admin/login, rôles : PUBLIC_ACCESS}
- { chemin : ^/login, rôles : PUBLIC_ACCESS }
- { chemin : ^/, rôles : ROLE_USER }</pre>
<p>Tout fonctionne bien sur le pare-feu principal, mais lorsque j'utilise le bouton de soumission du pare-feu utilisateur (administrateur), la page de connexion se rafraîchit et rien ne se passe. Je ne reçois aucune erreur. </p>
<p>** Si j'ajoute une connexion utilisateur (administrateur) sur le pare-feu principal, alors /admin/login fonctionne correctement et l'autre ne fonctionne plus. </p>
<p>Lorsque j'appelle <code>$authenticationUtils->getLastAuthenticationError()</code>, je ne reçois aucune erreur. Mais la validation ne fonctionne pas non plus.</p>
<p>Voici à quoi ressemble mon contrôleur : </p>
<pre class="brush:php;toolbar:false;">fonction publique adminLogin(AuthenticationUtils $authenticationUtils) : réponse
{
si ($this->getUser()) {
return $this->redirectToRoute('app.dashboard.index');
}
$loginForm = $this->createForm(LoginType::class, ['emailAddress' => $authenticationUtils->getLastUsername()]);
return $this->renderForm('app/pages/authorization/admin_login.html.twig', [
'title' => 'Connexion',
'login_form' =>
'erreur' => $authenticationUtils->getLastAuthenticationError()?->getMessageKey(),
]);
}</pré>
<p>C'est le même problème que quelqu'un a eu : https://grafikart.fr/forum/35234, mais je n'ai trouvé aucune solution. </p>
Your Answer
1 réponse
Enfin, j'ai trouvé la réponse et je la posterai ici : https://stackoverflow.com/a/42352112/8003007
Tout ce que j'ai à faire est d'en ajouter un context: my_context aux deux pare-feu.
Il s'agit d'une option difficile à identifier car elle n'apparaît pas dans la documentation officielle et actuelle de Symfony, uniquement dans les versions précédentes, telles que Symfony 3.4.
Outils chauds Tags
Hot Questions
function_exists() ne peut pas déterminer la fonction personnalisée
2024-04-29 11:01:01
Comment afficher la version mobile de Google Chrome
2024-04-23 00:22:19
La fenêtre enfant exploite la fenêtre parent, mais la sortie ne répond pas.
2024-04-19 15:37:47
Il n'y a aucune sortie dans la fenêtre parent
2024-04-18 23:52:34
Où sont les didacticiels sur la cartographie mentale CSS ?
2024-04-16 10:10:18
Hot Tools
Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)
Téléchargez la collection de bibliothèques d'exécution requises pour l'installation de phpStudy
VC9 32 bits
Bibliothèque d'exécution de l'environnement d'installation intégré VC9 32 bits phpstudy
Version complète de la boîte à outils du programmeur PHP
Programmer Toolbox v1.0 Environnement intégré PHP
VC11 32 bits
Bibliothèque d'exécution de l'environnement d'installation intégré VC11 phpstudy 32 bits
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Sujets chauds
Article chaud
Prédiction des dix principales tendances du marché des cryptomonnaies en 2025 : où est la prochaine tendance ?
2025-11-07
By DDD
Comment identifier les projets de chiens autochtones dans le cercle monétaire ? Évitez les pièges et les avertissements de risque du Zerocoin
2025-11-07
By DDD
Tutoriel sur la résolution des problèmes de priorité des requêtes CSS @media et de couverture des règles
2025-11-07
By DDD





