Audit-Protokoll
Doggy bietet eine durchgängige Auditierung aller Systemoperationen. Über AuditService werden alle wichtigen Aktionen aufgezeichnet und in App\Entity\System\AuditLog gespeichert.
Übersicht
Das Audit-Protokoll-System besteht aus folgenden Teilen:
AuditLog-Entität (src/Entity/System/AuditLog.php): Persistenz der ProtokolleAuditService(src/Service/System/AuditService.php): Dienst zur Protokollierung- Der Einstiegspunkt für Audit-Protokolle liegt in
App\Controller\Admin\SecurityConfigController
Erfasste Inhalte
Jeder Audit-Protokolleintrag enthält:
action: Operationstyp (login_success,login_failure,create,update,delete)category: Kategorie (security,business,system)details: Operationsdetails (JSON-Format)performer: Der Benutzer, der die Operation ausgeführt hat
Verwendung
php
use App\Service\System\AuditService;
class SomeService
{
public function __construct(private AuditService $auditService) {}
public function doSomething(): void
{
// 登录成功
$this->auditService->log('login_success', 'security', [], $user);
// 登录失败
$this->auditService->log('login_failure', 'security', [
'username' => $email,
'error' => $exception->getMessage(),
]);
// 数据操作
$this->auditService->log('update', 'business', [
'entity' => Employee::class,
'id' => $employee->getId(),
'changes' => $changes,
]);
}
}Integration
Die Audit-Protokollierung ist automatisch in die wichtigsten Sicherheitsabläufe integriert:
Login-Authentifizierung
App\Security\AppCustomAuthenticator zeichnet automatisch auf:
php
// 登录成功时
$this->auditService->log('login_success', 'security', [], $user);
// 登录失败时
$this->auditService->log('login_failure', 'security', [
'username' => $email,
'error' => $exception->getMessage(),
]);Sicherheitsanforderungen
- Audit-Protokolle sind nur für Auditoren sichtbar (
ROLE_AUDITOR, über dieAUDIT_VIEW-Berechtigung desThreeOfficersVoter) - Die Protokolle werden in der Datenbank gespeichert und unterstützen Nachverfolgung und Export
- Suche nach Zeitraum, Benutzer und Operationstyp wird unterstützt