From 90c19672b32e3db48cddc96029a3a3501f58e40d Mon Sep 17 00:00:00 2001 From: Sagun Karki Date: Sun, 1 Mar 2026 13:40:06 +0100 Subject: [PATCH 1/2] Fix SOAP authentication: reinitialize user in SOAP context --- components/ILIAS/soap/classes/class.ilSoapAdministration.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/ILIAS/soap/classes/class.ilSoapAdministration.php b/components/ILIAS/soap/classes/class.ilSoapAdministration.php index 11216ec84cf2..4b0f7eac985f 100755 --- a/components/ILIAS/soap/classes/class.ilSoapAdministration.php +++ b/components/ILIAS/soap/classes/class.ilSoapAdministration.php @@ -147,7 +147,7 @@ protected function initAuth(string $sid): void session_id($sid); - if (ilContext::getType() !== ilContext::CONTEXT_SOAP) { + if (ilContext::getType() === ilContext::CONTEXT_SOAP) { ilInitialisation::reInitUser(); ilUtil::setCookie(session_name(), $sid); } @@ -162,7 +162,7 @@ protected function initIlias(): void } } } - + public function reInitUser(): void { if (ilContext::getType() === ilContext::CONTEXT_SOAP) { From 8a5025108792a782fdead929e231f7fc15717350 Mon Sep 17 00:00:00 2001 From: Sagun Karki Date: Tue, 3 Mar 2026 12:26:29 +0100 Subject: [PATCH 2/2] fix(SOAP): set SOAP context before entry_point and unconditionally reinitialize user in initAuth --- components/ILIAS/soap/classes/class.ilSoapAdministration.php | 5 +++-- components/ILIAS/soap/resources/soap/server.php | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/components/ILIAS/soap/classes/class.ilSoapAdministration.php b/components/ILIAS/soap/classes/class.ilSoapAdministration.php index 4b0f7eac985f..a44da6f3bedf 100755 --- a/components/ILIAS/soap/classes/class.ilSoapAdministration.php +++ b/components/ILIAS/soap/classes/class.ilSoapAdministration.php @@ -147,8 +147,9 @@ protected function initAuth(string $sid): void session_id($sid); - if (ilContext::getType() === ilContext::CONTEXT_SOAP) { - ilInitialisation::reInitUser(); + ilInitialisation::reInitUser(); + + if (ilContext::getType() !== ilContext::CONTEXT_SOAP) { ilUtil::setCookie(session_name(), $sid); } } diff --git a/components/ILIAS/soap/resources/soap/server.php b/components/ILIAS/soap/resources/soap/server.php index 7c66d6c2656a..a471c324016f 100644 --- a/components/ILIAS/soap/resources/soap/server.php +++ b/components/ILIAS/soap/resources/soap/server.php @@ -27,12 +27,14 @@ require_once 'vendor/composer/vendor/autoload.php'; require_once __DIR__ . '/../../artifacts/bootstrap_default.php'; + +ilContext::init(ilContext::CONTEXT_SOAP); + entry_point('ILIAS Legacy Initialisation Adapter'); // Initialize the error_reporting level, until it will be overwritte when ILIAS gets initialized error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); -ilContext::init(ilContext::CONTEXT_SOAP); $ilIliasIniFile = new ilIniFile('./ilias.ini.php'); $ilIliasIniFile->read();