[+] chore(root): Initialise le projet avec une structure de base Crée la structure de base du projet Symfony, incluant les entités, services, formulaires, et templates nécessaires pour la gestion des comptes utilisateurs, la sécurité, et la gestion des mots de passe oubliés. Ajoute également la configuration pour la gestion des assets avec Vite, la gestion des fichiers avec Flysystem, et la génération de sitemaps. ```
49 lines
2.2 KiB
YAML
49 lines
2.2 KiB
YAML
# 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_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
|
|
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: ^/console, roles: [ROLE_COSPLAY] }
|
|
- { path: ^/, roles: PUBLIC_ACCESS } # Toutes les autres pages nécessitent une authentification complète
|