Files
cms-core/Documentation/Changelog/10.0/Breaking-88646-RemovedInheritanceOfAbstractServiceFromAbstractAuthenticationService.rst

51 lines
2.1 KiB
ReStructuredText

.. include:: /Includes.rst.txt
.. _breaking-88646:
============================================================================================
Breaking: #88646 - Removed inheritance of AbstractService from AbstractAuthenticationService
============================================================================================
See :issue:`88646`
Description
===========
The PHP :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 :php:`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 :php:`GeneralUtility::makeInstanceService` was added.
In order to refactor the Authentication API, the :php:`TYPO3\CMS\Core\Authentication\AbstractAuthenticationService`
class does not inherit from :php:`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 :php:`TYPO3\CMS\Core\Authentication\AbstractAuthenticationService` class or methods, properties or constants that reside within
:php:`TYPO3\CMS\Core\Service\AbstractService` will result in PHP :php:`E_ERROR` or :php:`E_WARNING`.
Since :php:`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 :php:`TYPO3\CMS\Core\Authentication\AbstractAuthenticationService`
but requires methods or properties from :php:`TYPO3\CMS\Core\Service\AbstractService`, ensure to copy over the
necessary methods/properties/constants into your custom Authentication provider.
.. index:: PHP-API, NotScanned