From 037ec4d34bddf67ccc8b981169cbc2e4f034e122 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Wed, 26 Aug 2026 10:25:17 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20OAuth-Client-Fehler=20l=C3=B6sen=20keine?= =?UTF-8?q?=20Exception-Mail=20mehr=20aus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bots klopfen /oauth/authorize ohne gültige OAuth-Parameter ab; Passport wirft dann korrekt einen 4xx-Fehler. Da der Handler bei jeder gemeldeten Exception mailt und die API ausschliesslich Personal Access Tokens nutzt (Authorize-Flow nie legitim genutzt), war jede dieser Mails Rauschen. OAuthServerException wandert in $dontReport – Endpoint-Verhalten bleibt unveraendert, nur der Mail-Versand fuer diese Client-Fehler entfaellt. Co-Authored-By: Claude Opus 4.8 (1M context) --- app/Exceptions/Handler.php | 28 ++++++++++--------- .../briefing-anpassungen-27-04-2026.md | 0 .../{ => 00-konzept}/briefing.md | 0 .../{ => 00-konzept}/feedback.md | 0 .../{ => 00-konzept}/konzept-final.md | 0 .../{ => 00-konzept}/konzept.md | 0 ...ntwicklungsplan-aktualisiert-02-06-2026.md | 0 ...ntwicklungsplan-aktualisiert-06-07-2026.md | 0 ...ntwicklungsplan-aktualisiert-12-06-2026.md | 0 ...ntwicklungsplan-aktualisiert-27-04-2026.md | 0 .../entwicklungsplan.md | 0 .../audit-bericht-15-07-2026.md | 0 .../ap-32-brueckenloesung-connector-update.md | 0 13 files changed, 15 insertions(+), 13 deletions(-) rename dev/product management /{ => 00-konzept}/briefing-anpassungen-27-04-2026.md (100%) rename dev/product management /{ => 00-konzept}/briefing.md (100%) rename dev/product management /{ => 00-konzept}/feedback.md (100%) rename dev/product management /{ => 00-konzept}/konzept-final.md (100%) rename dev/product management /{ => 00-konzept}/konzept.md (100%) rename dev/product management /{ => 01-entwicklungsplaene}/entwicklungsplan-aktualisiert-02-06-2026.md (100%) rename dev/product management /{ => 01-entwicklungsplaene}/entwicklungsplan-aktualisiert-06-07-2026.md (100%) rename dev/product management /{ => 01-entwicklungsplaene}/entwicklungsplan-aktualisiert-12-06-2026.md (100%) rename dev/product management /{ => 01-entwicklungsplaene}/entwicklungsplan-aktualisiert-27-04-2026.md (100%) rename dev/product management /{ => 01-entwicklungsplaene}/entwicklungsplan.md (100%) rename dev/product management /{ => 02-audit}/audit-bericht-15-07-2026.md (100%) rename dev/product management /{ => 03-status-und-vorschlaege}/ap-32-brueckenloesung-connector-update.md (100%) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 70b0ce5..5f8ee13 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -3,10 +3,12 @@ namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; -use Throwable; use Illuminate\Support\Facades\Mail; -use Symfony\Component\ErrorHandler\Exception\FlattenException; +use Laravel\Passport\Exceptions\OAuthServerException; use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer; +use Symfony\Component\ErrorHandler\Exception\FlattenException; +use Symfony\Component\HttpFoundation\Response; +use Throwable; class Handler extends ExceptionHandler { @@ -16,7 +18,10 @@ class Handler extends ExceptionHandler * @var array */ protected $dontReport = [ - // + // OAuth-Client-Fehler (z. B. Bots, die /oauth/authorize ohne gültige + // Parameter abklopfen). Werden sauber als 4xx an den Aufrufer gerendert + // und sind keine Applikationsfehler – lösen daher keine Exception-Mail aus. + OAuthServerException::class, ]; /** @@ -32,7 +37,6 @@ class Handler extends ExceptionHandler /** * Report or log an exception. * - * @param \Throwable $exception * @return void * * @throws \Exception @@ -49,10 +53,9 @@ class Handler extends ExceptionHandler * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request - * @param \Throwable $exception - * @return \Symfony\Component\HttpFoundation\Response + * @return Response * - * @throws \Throwable + * @throws Throwable */ public function render($request, Throwable $exception) { @@ -67,24 +70,23 @@ class Handler extends ExceptionHandler $css = $handler->getStylesheet(); $content = $handler->getBody($e); - //Mail::to(config('app.exception_mail'))->send(new MailContact($contact)); + // Mail::to(config('app.exception_mail'))->send(new MailContact($contact)); // Verwende normale Mail-Klasse statt Facade, um Probleme bei der Initialisierung zu vermeiden $to = config('app.exception_mail'); - $subject = 'gruene-seele Exception: ' . \Request::fullUrl(); + $subject = 'gruene-seele Exception: '.\Request::fullUrl(); if ($to) { \Mail::send('emails.exception', compact('css', 'content'), function ($message) use ($to, $subject) { $message ->to($to) - ->subject($subject) - ; + ->subject($subject); }); } } catch (Throwable $ex) { // Einfache Fehlerprotokollierung ohne Facade file_put_contents( - storage_path('logs/laravel-' . date('Y-m-d') . '.log'), - '[' . date('Y-m-d H:i:s') . '] exception-handler-error: ' . $ex->getMessage() . "\n", + storage_path('logs/laravel-'.date('Y-m-d').'.log'), + '['.date('Y-m-d H:i:s').'] exception-handler-error: '.$ex->getMessage()."\n", FILE_APPEND ); } diff --git a/dev/product management /briefing-anpassungen-27-04-2026.md b/dev/product management /00-konzept/briefing-anpassungen-27-04-2026.md similarity index 100% rename from dev/product management /briefing-anpassungen-27-04-2026.md rename to dev/product management /00-konzept/briefing-anpassungen-27-04-2026.md diff --git a/dev/product management /briefing.md b/dev/product management /00-konzept/briefing.md similarity index 100% rename from dev/product management /briefing.md rename to dev/product management /00-konzept/briefing.md diff --git a/dev/product management /feedback.md b/dev/product management /00-konzept/feedback.md similarity index 100% rename from dev/product management /feedback.md rename to dev/product management /00-konzept/feedback.md diff --git a/dev/product management /konzept-final.md b/dev/product management /00-konzept/konzept-final.md similarity index 100% rename from dev/product management /konzept-final.md rename to dev/product management /00-konzept/konzept-final.md diff --git a/dev/product management /konzept.md b/dev/product management /00-konzept/konzept.md similarity index 100% rename from dev/product management /konzept.md rename to dev/product management /00-konzept/konzept.md diff --git a/dev/product management /entwicklungsplan-aktualisiert-02-06-2026.md b/dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-02-06-2026.md similarity index 100% rename from dev/product management /entwicklungsplan-aktualisiert-02-06-2026.md rename to dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-02-06-2026.md diff --git a/dev/product management /entwicklungsplan-aktualisiert-06-07-2026.md b/dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-06-07-2026.md similarity index 100% rename from dev/product management /entwicklungsplan-aktualisiert-06-07-2026.md rename to dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-06-07-2026.md diff --git a/dev/product management /entwicklungsplan-aktualisiert-12-06-2026.md b/dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-12-06-2026.md similarity index 100% rename from dev/product management /entwicklungsplan-aktualisiert-12-06-2026.md rename to dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-12-06-2026.md diff --git a/dev/product management /entwicklungsplan-aktualisiert-27-04-2026.md b/dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-27-04-2026.md similarity index 100% rename from dev/product management /entwicklungsplan-aktualisiert-27-04-2026.md rename to dev/product management /01-entwicklungsplaene/entwicklungsplan-aktualisiert-27-04-2026.md diff --git a/dev/product management /entwicklungsplan.md b/dev/product management /01-entwicklungsplaene/entwicklungsplan.md similarity index 100% rename from dev/product management /entwicklungsplan.md rename to dev/product management /01-entwicklungsplaene/entwicklungsplan.md diff --git a/dev/product management /audit-bericht-15-07-2026.md b/dev/product management /02-audit/audit-bericht-15-07-2026.md similarity index 100% rename from dev/product management /audit-bericht-15-07-2026.md rename to dev/product management /02-audit/audit-bericht-15-07-2026.md diff --git a/dev/product management /ap-32-brueckenloesung-connector-update.md b/dev/product management /03-status-und-vorschlaege/ap-32-brueckenloesung-connector-update.md similarity index 100% rename from dev/product management /ap-32-brueckenloesung-connector-update.md rename to dev/product management /03-status-und-vorschlaege/ap-32-brueckenloesung-connector-update.md