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.
API Key Wildcard: Fehlerbehebung
Problem: 404 am Wildcard-Endpoint
Symptome:
/api/wildcard/tickets.jsonliefert 404.- Das Plugin ist aktiviert, aber die Datei fehlt oder die Regel steht nicht in
api/.htaccess.
Prüfung:
- Existiert
api/wildcard.php? - Steht die Regel
RewriteRule ^wildcard/(.*)$ wildcard.php/$1 [L]inapi/.htaccess? - Steht
Options -MultiViewsinapi/.htaccess? - Ist
mod_rewriteaktiv und wertet dein Webserver.htaccessaus? - Hat der Webserver-Benutzer Schreibrechte auf das Verzeichnis
api/und aufapi/.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
- Die Option Log Wildcard API Access muss aktiviert sein.
- Nur Anfragen mit einem Key der IP
0.0.0.0erzeugen einen Eintrag, Keys mit fester IP nicht. - Der Eintrag ist ein Debug-Eintrag und erscheint nur, wenn das Log-Level von osTicket Debug-Meldungen zulässt.
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.