2025-12-11 17:22:26 +01:00
|
|
|
# config/packages/security.yaml
|
2025-12-09 17:11:08 +01:00
|
|
|
security:
|
2025-12-11 17:22:26 +01:00
|
|
|
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
|
2025-12-09 17:11:08 +01:00
|
|
|
providers:
|
2025-12-11 17:22:26 +01:00
|
|
|
# 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
|
2025-12-09 17:11:08 +01:00
|
|
|
|
|
|
|
|
firewalls:
|
|
|
|
|
dev:
|
2025-12-11 17:22:26 +01:00
|
|
|
pattern: ^/(_(profiler|wdt)|css|images|js)/
|
2025-12-09 17:11:08 +01:00
|
|
|
security: false
|
2025-12-11 17:22:26 +01:00
|
|
|
|
2025-12-09 17:11:08 +01:00
|
|
|
main:
|
|
|
|
|
lazy: true
|
2025-12-11 17:22:26 +01:00
|
|
|
provider: app_account_provider # Utilise le provider que nous avons défini ci-dessus
|
|
|
|
|
user_checker: App\Security\UserChecker
|
|
|
|
|
form_login:
|
|
|
|
|
login_path: app_home # La route vers votre formulaire de connexion (GET)
|
|
|
|
|
check_path: app_home # 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
|
2026-01-15 18:04:01 +01:00
|
|
|
- App\Security\KeycloakAuthenticator
|
2025-12-11 17:22:26 +01:00
|
|
|
logout:
|
|
|
|
|
target: app_logout
|
2025-12-09 17:11:08 +01:00
|
|
|
|
2025-12-11 17:22:26 +01:00
|
|
|
# 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
|
2025-12-09 17:11:08 +01:00
|
|
|
|
2025-12-11 17:22:26 +01:00
|
|
|
role_hierarchy:
|
2026-01-15 18:04:01 +01:00
|
|
|
ROLE_ROOT: [ROLE_ADMIN] #
|
2025-12-09 17:11:08 +01:00
|
|
|
|
|
|
|
|
access_control:
|
2025-12-11 17:22:26 +01:00
|
|
|
- { path: ^/admin, roles: [ROLE_ADMIN] }
|
|
|
|
|
- { path: ^/, roles: PUBLIC_ACCESS } # Toutes les autres pages nécessitent une authentification complète
|