Fix: Tasks-Endpoints ignorierten die Monolith-Session (sidawo)
bootstrap.php rief session_start() mit Standard-Name PHPSESSID auf, weil start.inc.php für Endpoint-Requests bewusst nicht geladen wird. Das führte zu einer leeren Session → contactId = 0 → "Keine Berechtigung". Lösung: Vor session_start() prüfen ob ein sid*-Cookie vorhanden ist und ggf. session_name() entsprechend setzen, damit Endpoints und Monolith dieselbe Session nutzen. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -260,6 +260,18 @@ if (!defined('TASK_CERT_BOOTSTRAPPED')) {
|
||||
}
|
||||
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
// Endpoint-Requests überspringen start.inc.php (kein session_name-Setup durch den Monolith).
|
||||
// Cookie-Detection stellt sicher, dass wir dieselbe Session wie der Monolith verwenden
|
||||
// (Monolith setzt den Session-Namen auf "sid{site_code}", z.B. "sidawo").
|
||||
if (session_name() === 'PHPSESSID') {
|
||||
foreach (array_keys($_COOKIE) as $_tc_sn) {
|
||||
if (strncmp($_tc_sn, 'sid', 3) === 0) {
|
||||
session_name($_tc_sn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
unset($_tc_sn);
|
||||
}
|
||||
session_start();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user