Skip to content

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 Protokolle
  • AuditService (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 die AUDIT_VIEW-Berechtigung des ThreeOfficersVoter)
  • Die Protokolle werden in der Datenbank gespeichert und unterstützen Nachverfolgung und Export
  • Suche nach Zeitraum, Benutzer und Operationstyp wird unterstützt

Open Source unter MIT | Copyright © 2026 Doggy