Repository navigation
Conversation
…ts implementation
chfsx
requested review from
Uwe-Kohnle,
fwolf-ilias,
kergomard,
mjansenDatabay and
thibsy
October 23, 2026 20:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The cookie API of HTTP (
Cookie,CookieJar,CookieFactory,CookieJarFactory) is free of library types, but HTTP did not offer theCookieFactoryas a service. Consumers therefore instantiatedCookieFactoryImplthemselves, and a test built cookies fromDflydev\FigCookies\SetCookiedirectly. This PR offers the factory through the HTTP services, switches the consumers to it and keepsdflydev/fig-cookiesan implementation detail of HTTP. Same approach as #12266 (guzzlehttp/psr7) and #12267 (pimple/pimple).HTTP
CookieFactoryis defined and implemented in the bootstrap ($use[CookieFactory::class]) and available to legacy code as$DIC->http()->cookies()(new method onGlobalHttpState).CookieWrapperandCookieJarWrapperare marked@internal; they are only created by the factories.Dflydev\FigCookies\*outside of HTTP) and examples using$dic->http()->cookies(). The examples also discarded the result of the immutablewithPath(); fixed.Components
ilUtil::setCookie(),ilWACSignedPathandwac.phpuse theCookieFactoryof the HTTP services instead ofnew CookieFactoryImpl().ilWACTokenTestTBDno longer usesSetCookie/CookieWrapper.ModeToggleis removed. It had no caller ("This is just for testing!!! And will be removed after").usr_imagesis removed fromservice.xml. Profile pictures are stored in the IRSS, nothing is written tousr_imagesany more. Existing installations keep the row inil_wac_secure_path, asilSecurePathDefinitionProcessor::purge()does not remove paths; it still points toilObjUserAccess, which is unchanged.Overlap with #12266
Both PRs add a method to
GlobalHttpState/RawHTTPServices/Servicesand a factory toHTTP.php,InitHttpServices,wac.php,HTTPServicesTestand the README of HTTP. Whichever is merged second needs a rebase with small, unambiguous conflicts.Testing
[OK] All static artifacts are build!RootFolderTest, which only fails locally because of untracked files in the root folder of my checkout.components/ILIAS: green. php-cs-fixer on the changed files: clean.ilClientIdviailUtil::setCookie()), a SCORM module started and navigated: the player signs the folder withilWACSignedPath::signFolderOfStartFile()and all files of the module are delivered throughwac.php. A file signed withilWACSignedPath::signFile()is delivered throughwac.phpas well.@fwolf-ilias @Uwe-Kohnle for WebAccessChecker, @kergomard for User, @mjansenDatabay @thibsy for Init. Utilities is unmaintained.
If there are no objections, I will merge this before Coding Completed.