Projekt

Allgemein

Profil

Aktionen

Bug #85

offen

[Bugsink] TYPO3\CMS\Core\Error\Http\UnauthorizedException: No valid auth token given.

Von Bug Sink vor 28 Tagen hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
26.07.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/6a923dff-90ff-4509-96c5-34efb8913f1f/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

TYPO3\CMS\Core\Error\Http\UnauthorizedException: No valid auth token given.


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers: UnauthorizedException: No valid auth token given


1. Ursache identifizieren

Der Fehler tritt auf, wenn TYPO3 keine gültige Authentifizierung (Token) für eine geschützte Anfrage erhält. Die Stacktrace zeigt, dass die Exception in der Middleware-Pipeline ausgelöst wird, bevor die eigentliche Anfrageverarbeitung beginnt.

Konkrete Ursache:

  • Middleware VerifyHostHeader (Zeile 55) oder eine vorherige Middleware prüft auf einen gültigen Auth-Token (z. B. für API-Anfragen, Backend-Logins oder CSRF-Schutz).
  • Der Token fehlt entweder:
    • Im HTTP-Header (z. B. X-AUTH-TOKEN, Authorization: Bearer ...).
    • Im Request-Parameter (z. B. ?token=...).
    • In der Session (falls TYPO3 einen Session-basierten Token erwartet).
  • Mögliche Szenarien:
    • API-Anfrage ohne gültigen Token (z. B. REST-API, Extbase-Endpunkt).
    • Backend-Login mit fehlendem/invalidem CSRF-Token.
    • Middleware-Konfiguration erzwingt Token-Prüfung, obwohl sie nicht benötigt wird.
    • Caching-Problem: Ein veralteter Token wird verwendet.

2. Fix beschreiben (konkret)

Abhängig vom Kontext (API, Backend, Frontend) gibt es unterschiedliche Lösungen:

A) API-Anfrage (z. B. Extbase-Endpunkt, REST)
  • Token im Header senden:
    Authorization: Bearer <TOKEN>
    
    oder
    X-AUTH-TOKEN: <TOKEN>
    
  • Token generieren (falls nicht vorhanden):
    • Für Backend-User:
      $token = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac(
          $GLOBALS['BE_USER']->id . ':' . $GLOBALS['BE_USER']->user['username'],
          'backend'
      );
      
    • Für Frontend-User:
      $token = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac(
          $GLOBALS['FE_USER']->id . ':' . $GLOBALS['FE_USER']->user['username'],
          'frontend'
      );
      
  • Middleware deaktivieren (falls Token-Prüfung unnötig ist):
    // In ext_localconf.php der Extension
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['security.frontend.enforceToken'] = false;
    
B) Backend-Login (CSRF-Token)
  • Token im Formular einbinden:
    <input type="hidden" name="CSRFToken" value="{f:security.csrfToken()}" />
    
  • Token im JavaScript setzen (für AJAX-Requests):
    const token = document.querySelector('meta[name="csrf-token"]').content;
    fetch('/api/endpoint', {
        headers: { 'X-CSRF-TOKEN': token }
    });
    
C) Middleware-Konfiguration prüfen
  • VerifyHostHeader anpassen (falls zu restriktiv):
    // In ext_localconf.php
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] = '.*'; // Nur für Entwicklung!
    
  • Token-Prüfung in Middleware deaktivieren (falls nicht benötigt):
    // In der Middleware-Klasse (z. B. VerifyHostHeader.php)
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface {
        if ($request->getUri()->getPath() === '/api/allowed') {
            return $handler->handle($request); // Token-Prüfung überspringen
        }
        // ... restlicher Code
    }
    
D) Session-Probleme beheben
  • Session-Cookie prüfen (z. B. fe_typo_user oder be_typo_user).
  • Cache leeren (falls veraltete Tokens im Cache liegen):
    typo3 cache:flush
    

3. Betroffene TYPO3 Extension

  • Core-Extension: typo3/cms-core (Middleware VerifyHostHeader und Token-Handling).
  • Mögliche Drittanbieter-Extensions:
    • typo3/cms-rest (für REST-APIs).
    • typo3/cms-extbase (für Extbase-Endpunkte).
    • Eigene Extensions, die Middleware registrieren oder Token prüfen.

4. Confidence (0-100%)

  • 90% – Die Ursache liegt mit hoher Wahrscheinlichkeit in einer fehlenden Token-Übergabe oder falscher Middleware-Konfiguration.
  • Unsicherheitsfaktoren:
    • Der genaue Kontext (API, Backend, Frontend) ist nicht vollständig klar.
    • Es könnte auch ein Bug in einer Drittanbieter-Extension vorliegen (z. B. falsche Middleware-Reihenfolge).

Empfohlene nächste Schritte

  1. Request-Header analysieren (z. B. mit Browser-DevTools oder var_dump($request->getHeaders()) in einer Middleware).
  2. Token-Generierung prüfen (z. B. ob der Token korrekt im Frontend/Backend gesetzt wird).
  3. Middleware-Reihenfolge debuggen (mit die() in VerifyHostHeader.php oder NormalizedParamsAttribute.php).
  4. TYPO3-Logs prüfen (typo3/sysext/core/Resources/Private/Log/ oder var/log/typo3_*.log).

Falls der Fehler in einer spezifischen Extension auftritt, sollte deren Dokumentation oder Code auf Token-Anforderungen geprüft werden.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF