Bonjour à tous,
je suis en train de me former à l'utilisation de Symfony et je me casse les dents sur un sujet bien spécifique à savoir la gestion de la sécurity et du contrôle d'accès.
Je suis bien arrivé a créer un User, un Auth, a modifier l'access_control dans le security.yaml, tout fonctionne correctement, si j'essaie d'accéder à la page "customerProfile", je suis rediriger vers la mire d'authent et la connection se fait correctement.
Mon problème se situe plutôt dans le fait que j'aimerais utiliser plusieurs providers et firewalls pour avoir par exemple sur mon site une page d'accès dispo aux clients (pour la gestion de leur profile) et une page d'accès pour les administrateurs (pour la gestion des produits)
Impossible de comprendre comment faire... j'ai bien créer un Authenticator différent du premier dans la partie Controller/Security
j'ai bien déclaré mon provider et mon nouveau firewall mais rien n'y fait, quand j'essaie d'accéder a la page "Admin" je suis rediriger vers la page d'authent "customerProfile"
Voici le security.yaml en question:
security:
enable_authenticator_manager: true
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
App\Entity\Administrator:
algorithm: auto
App\Entity\Customer:
algorithm: auto
providers:
app_customer_provider:
entity:
class: App\Entity\Customer
property: email
app_admin_provider:
entity:
class: App\Entity\Administrator
property: username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
lazy: true
entry_point: App\Security\CustomerAuthenticator
provider: app_customer_provider
custom_authenticator: App\Security\CustomerAuthenticator
logout:
path: app_logout
administrator:
pattern: ^/admin
lazy: true
entry_point: App\Security\AdminAuthenticator
provider: app_admin_provider
custom_authenticator: App\Security\AdminAuthenticator
logout:
path: app_logout
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/profile, roles: ROLE_USER }
#- { path: ^/admin, roles: IS_AUTHENTICATED_FULLY }
#- { path: ^/profile, roles: IS_AUTHENTICATED_FULLY }
Je précise que toutes les entités sont créées correctement, je ne comprend pas vraiment la logique derriere tout àa.
Est ce que quelqu'un a déjà eu faire face à cette situtation ? Pouvez vous m'éclairer ?
Cdt
Petite précision, j'ai bien essayé de remplacer "main" par un nom custom avec le pattern ^/profile , dans ce cas la, les deux pages redirigent bien vers leur mire d'authent respective mais la connection ne fonctionne pas (aucune erreur est affichée, je suis redirigé vers le formulaire d'authent)