Table des matières
TogglePrise de Note des Logs dans Symfony
Introduction
Dans ce projet, nous avons mis en place un système de logs permettant d'enregistrer les actions des utilisateurs. Ce mécanisme assure un suivi des événements clés, tels que la connexion, la déconnexion et la création de comptes, tout en améliorant la sécurité et la traçabilité des actions.
LogService : Gestion Centralisée des Logs
Le LogService
est une classe dédiée à l'enregistrement des événements dans la base de données :
- Il reçoit une instance de
EntityManager
pour interagir avec la base de données. - La méthode
log
permet de créer un enregistrement avec : - L'identifiant de l'utilisateur.
- Son adresse IP.
- L'action effectuée (connexion, déconnexion, création de compte, etc.).
- Des détails supplémentaires si nécessaire.
- Les entrées sont sauvegardées dans la base de données grâce aux méthodes
persist
etflush
.
UserListener : Suivi des Actions Utilisateur
Le UserListener
est une classe qui écoute des événements spécifiques liés aux utilisateurs :
- Elle est abonnée aux événements de connexion, déconnexion et création de compte.
- Son constructeur reçoit une instance de
LogService
pour centraliser la gestion des logs. - La méthode
getSubscribedEvents
définit les événements suivis : InteractiveLoginEvent
: Lorsqu'un utilisateur se connecte.LogoutEvent
: Lorsqu'un utilisateur se déconnecte.postPersist
: Après la création d'un nouvel utilisateur.
Enregistrement des Événements
Les actions des utilisateurs sont enregistrées de la manière suivante :
- Connexion : La méthode
onSecurityInteractiveLogin
récupère l'utilisateur et son adresse IP, puis enregistre un log indiquant la connexion. - Déconnexion : La méthode
onSecurityLogout
enregistre la déconnexion de l'utilisateur avec son adresse IP. - Création de compte : La méthode
onUserCreation
vérifie qu'un nouvel utilisateur a bien été ajouté à la base et enregistre cet événement.
Conclusion
Ce système de logs dans Symfony offre une traçabilité complète des actions des utilisateurs. Grâce à LogService
et UserListener
, les événements critiques sont stockés de manière centralisée, garantissant un meilleur suivi et une sécurité renforcée.


