.. include:: /Includes.rst.txt .. _breaking-88527: ============================================================================== Breaking: #88527 - Overriding custom values in User Authentication derivatives ============================================================================== See :issue:`88527` Description =========== Due to some restructuring of :php:`TYPO3\CMS\Core\Authentication\AbstractUserAuthentication` and its direct sub-classes :php:`TYPO3\CMS\Core\Authentication\BackendUserAuthentication` (a.k.a. :php:`$BE_USER`) and :php:`TYPO3\CMS\Frontend\Authentication\FrontendUserAuthentication`, various settings are now directly initiated and set in the respective constructor of each PHP class. Following this, the properties :php:`sessionTimeout`, :php:`gc_time` and :php:`sessionDataLifetime` are set already when the constructor is called. Before this was the case when :php:`start()` was called. In addition, the property :php:`loginType` must be set for any subclass on instantiation. Previously this was possible to be set just before :php:`start()` was called. The previous behavior allowed to override certain parameters to be evaluated just before :php:`start()`. Impact ====== Setting any global variables between the constructor method and :php:`start()` will have no effect, as this is transferred and evaluated at the public properties already when the constructor is called. Subclassing :php:`AbstractUserAuthentication` without setting :php:`loginType` will trigger an exception on instantiation. Affected Installations ====================== Any TYPO3 installation where a custom UserAuthentication instantiation or sub-class is in place, and the setting order was changed between calling the constructor and the method :php:`start()`, which is considered a very rare case. Migration ========= Consider using a proper subclass and a custom constructor method, or set all properties properly before the constructor is called (default values of class members). .. index:: PHP-API, NotScanned