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.