shouldReport($exception)) { $this->sendEmail($exception); } parent::report($exception); } /** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Throwable $exception * @return \Symfony\Component\HttpFoundation\Response * * @throws \Throwable */ public function render($request, Throwable $exception) { return parent::render($request, $exception); } /** * Convert an authentication exception into a response. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Auth\AuthenticationException $exception * @return \Symfony\Component\HttpFoundation\Response */ protected function unauthenticated($request, \Illuminate\Auth\AuthenticationException $exception) { if ($request->expectsJson()) { return response()->json(['message' => $exception->getMessage()], 401); } try { // Versuche domain-spezifische Login-Route $context = app(\App\Domain\DomainContext::class); $loginRoute = match($context->type) { 'portal' => 'portal.login.form', 'crm' => 'login', // CRM hat eine eigene login route default => 'login' }; return redirect()->guest(route($loginRoute)); } catch (\Exception $e) { // Fallback: Weiterleitung zur Hauptdomain return redirect()->guest('https://' . config('app.domain') . config('app.tld_care') . '/login'); } } public function sendEmail(Throwable $exception) { try { $e = FlattenException::create($exception); $handler = new HtmlErrorRenderer(true); // boolean, true raises debug flag... $css = $handler->getStylesheet(); $content = $handler->getBody($e); //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 = 'mivita Exception: ' . \Request::fullUrl(); if ($to) { \Mail::send('emails.exception', compact('css', 'content'), function ($message) use ($to, $subject) { $message ->to($to) ->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", FILE_APPEND ); } } }