Breaking: #88646 - Removed inheritance of AbstractService from AbstractAuthenticationService

See forge#88646

Description

The PHP TYPO3\CMS\Core\Authentication\AbstractAuthenticationService class is used for any kind of Authentication or Authorization towards Backend Users and Frontend Users.

It was previously based on TYPO3\CMS\Core\Service\AbstractService for any kind of Service API, which also includes manipulating files and execution of external applications, which is there for legacy reasons since TYPO3 3.x, where the Service API via GeneralUtility::makeInstanceService was added.

In order to refactor the Authentication API, the TYPO3\CMS\Core\Authentication\AbstractAuthenticationService class does not inherit from TYPO3\CMS\Core\Service\AbstractService anymore. Instead, the most required methods for executing a service is added to the Abstract class directly.

Impact

Any calls or checks on the TYPO3\CMS\Core\Authentication\AbstractAuthenticationService class or methods, properties or constants that reside within TYPO3\CMS\Core\Service\AbstractService will result in PHP E_ERROR or E_WARNING.

Since TYPO3\CMS\Core\Authentication\AbstractAuthenticationService is used for most custom Authentication APIs, this could affect some of the hooks or custom authentication providers available.

Affected Installations

TYPO3 installations that have custom Authentication providers for frontend or backend users / groups - e.g. LDAP or Two-Factor-Authentication.

Migration

If your custom Authentication Service extends from TYPO3\CMS\Core\Authentication\AbstractAuthenticationService but requires methods or properties from TYPO3\CMS\Core\Service\AbstractService, ensure to copy over the necessary methods/properties/constants into your custom Authentication provider.