# config/packages/security.yaml security: # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers providers: # Appelle votre provider d'utilisateurs. # Ici, nous configurons un provider d'entité pour notre classe Account, # en spécifiant 'username' comme propriété d'identification. app_account_provider: entity: class: App\Entity\Account property: email # Utilise le champ 'username' de votre entité Account pour l'authentification firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: lazy: true provider: app_account_provider # Utilise le provider que nous avons défini ci-dessus user_checker: App\Security\UserChecker form_login: login_path: app_login # La route vers votre formulaire de connexion (GET) check_path: app_login # L'URL où le formulaire POST sera soumis enable_csrf: true # Active la protection CSRF csrf_token_id: authenticate # ID du jeton CSRF (doit correspondre à celui dans votre Twig) entry_point: App\Security\AuthenticationEntryPoint custom_authenticator: - App\Security\LoginFormAuthenticator - App\Security\KeycloakAuthenticator - App\Security\DiscordAuthenticator logout: target: app_logout # Configuration des algorithmes de hachage des mots de passe. # Symfony choisira automatiquement le meilleur algorithme par défaut si non spécifié, # mais vous pouvez le configurer explicitement. password_hashers: App\Entity\Account: 'auto' # 'auto' sélectionne le meilleur algorithme disponible (recommandé) # Ou pour spécifier bcrypt explicitement : # App\Entity\Account: # algorithm: bcrypt role_hierarchy: ROLE_ROOT: [ROLE_ADMIN] # ROLE_ROOT inclut ROLE_ADMIN, qui à son tour inclut ROLE_ARTEMIS access_control: - { path: ^/admin, roles: [ROLE_ADMIN] } - { path: ^/, roles: PUBLIC_ACCESS } # Toutes les autres pages nécessitent une authentification complète