OAuth2: Php8 Kompatibilität
Beschreibung
Es wurde folgendes Problem mit OAuth2 in Verbindung mit Php8 gemeldet:
lcobucci/jwt 3.4.X ist nicht mit ^PHP8.0 kompatibel. Dies führt dazu, dass der OAuth2.0-Server (Version < 8.5.0) nicht mehr funktioniert, da dieser auf jwt 3.4.X zurückgreift.
Dies führt dazu das der OAuth-Server bzw. im Hintergrund die jwt-Bibliothek die Fehlermeldung ausgeben, dass das Schlüsselpaar nicht gelesen werden kann bzw. keinen gültigen Aufbau vorweist. Laut Ticket studip/studip#4621 (closed) hilft ein Update auf Version ^4.0.
It was not possible to parse your key, reason: error:1E08010C:DECODER routines::unsupported
Reproduzierbarkeit
-
Stud.IP Version 5.4 (oder höher) in Kombination mit PHP 8.0 oder neuer verwenden
-
Aufruf der URL: /dispatch.php/api/oauth2/authorize
-
Nach erfolgreichem Login und Freigabe einer Anwendung gibt der Server eine HTTP 500-Fehlermeldung mit dem Hinweis aus, dass der Schlüssel nicht gelesen werden konnte.
Lösungsvorschlag
Ein Update des OAuth2-Servers auf Version 8.5.5 unter Stud.IP 5.4 mit PHP 8.3 wurde erfolgreich getestet. In diesem Setup wurde die lcobucci/jwt-Bibliothek auf Version 5.5.0 aktualisiert, wodurch das Problem vollständig behoben werden konnte.
Alternativ könnte auch ein gezieltes Update der lcobucci/jwt-Bibliothek auf Version ^4.0 ausreichen – wie in Ticket studip/studip#4621 (closed) beschrieben. Dieser Ansatz wurde jedoch noch nicht getestet.