Markus Michalski FAQ

API Key Wildcard: Fehlerbehebung

Fehlerbehebung für API Key Wildcard: 404 am Endpoint, die vier 401-Meldungen, fehlender Log-Eintrag, nicht übernommene Updates, falscher Ordnername und häufige Fragen.

English Version

Zurück zur Übersicht

API Key Wildcard: Fehlerbehebung

Problem: 404 am Wildcard-Endpoint

Symptome:

Prüfung:

  1. Existiert api/wildcard.php?
  2. Steht die Regel RewriteRule ^wildcard/(.*)$ wildcard.php/$1 [L] in api/.htaccess?
  3. Steht Options -MultiViews in api/.htaccess?
  4. Ist mod_rewrite aktiv und wertet dein Webserver .htaccess aus?
  5. Hat der Webserver-Benutzer Schreibrechte auf das Verzeichnis api/ und auf api/.htaccess?

Lösung: Deaktiviere das Plugin und aktiviere es erneut, enable() kopiert die Datei neu und ergänzt die .htaccess. Die dabei gemeldeten Fehler (zum Beispiel Could not find osTicket API rewrite pattern) nennen die Ursache. Alternativ installierst du manuell (siehe Installation).

Problem: 401 vom Wildcard-Endpoint

Der Endpoint kennt vier Meldungen. Sie erscheinen in der Sprache der osTicket-Oberfläche, im englischen Standard wie hier.

Meldung Ursache Lösung
Valid API key required Der Request enthält keinen Key. Header X-API-Key mitsenden.
API key not found or IP not authorized Der Key existiert nicht, oder seine IP ist weder 0.0.0.0 noch die Absender-IP. Key prüfen und die IP des Keys auf 0.0.0.0 setzen.
API key not active Der Key ist deaktiviert. Key im Admin Panel aktivieren.
Source IP not authorized Die IP des Keys weicht von 0.0.0.0 und von der Absender-IP ab. IP des Keys prüfen.

Prüfe außerdem, dass du /api/wildcard/tickets.json mit der Methode POST aufrufst und der Key das Recht Kann Tickets erstellen hat.

Problem: Der Key funktioniert auf dem Endpoint eines anderen Plugins nicht

Routen anderer Plugins, die sich über das Signal api am Wildcard-Dispatcher registrieren, prüfen den Key selbst. Die Wildcard-Regel gilt dort nicht. Siehe Verwendung.

Problem: Fatal Error oder 500 am Endpoint

Ursache: Der Plugin-Ordner heißt nicht api-key-wildcard. wildcard.php lädt include/plugins/api-key-wildcard/api.wildcard.inc.php über diesen festen Pfad.

Lösung: Benenne den Ordner in api-key-wildcard um und aktiviere das Plugin erneut.

Problem: Kein Log-Eintrag bei Wildcard-Zugriffen

Problem: Plugin-Update wird nicht übernommen

Das Update der Endpoint-Datei läuft nur, wenn installed_version leer oder niedriger als die Version in plugin.php ist. Wurden Dateien ohne Versionsänderung ausgetauscht, bleibt die alte api/wildcard.php bestehen.

Lösung: Deaktiviere und aktiviere das Plugin, enable() kopiert die Datei immer neu. Leere bei Bedarf den PHP-OPcache, damit geänderte Plugin-Dateien geladen werden.

Häufige Fragen

Ändert das Plugin osTicket-Dateien?

Es ändert keine PHP-Dateien von osTicket. Es kopiert wildcard.php nach api/ und ergänzt api/.htaccess.

Kann ich beide Endpoints gleichzeitig nutzen?

Ja. Der Standard-Endpoint bleibt unverändert, der Wildcard-Endpoint kommt daneben.

Was passiert beim Deaktivieren?

api/wildcard.php wird gelöscht und die Wildcard-Regel sowie Options -MultiViews werden aus api/.htaccess entfernt.

Welche PHP-Versionen sind getestet?

Die CI prüft die Syntax mit PHP 7.4, 8.0, 8.1, 8.2 und 8.3.

Gibt es Tests für das Plugin?

Das Repository enthält keine Testsuite. Die CI prüft die Syntax aller PHP-Dateien, das Vorhandensein der Pflichtdateien, die Plugin-Metadaten (name und version in plugin.php), sucht in den PHP-Dateien nach eval( und base64_decode (Treffer lassen die CI fehlschlagen), prüft, dass README.md existiert, und prüft, dass CHANGELOG.md einen Abschnitt [Unreleased] enthält.