MfaSetupController extends AbstractMfaController uses PageRendererBackendSetupTrait

Controller to provide the standalone setup endpoint for multi-factor authentication.

This is used when MFA is enforced and a backend user logs in the first time to then set up MFA.

Internal

This class is a specific Backend controller implementation and is not considered part of the Public TYPO3 API.

Attributes
#[AsController]

Table of Contents

Constants

ACTION_METHOD_MAP  = ['setup' => 'GET', 'activate' => 'POST', 'cancel' => 'GET']

Properties

$allowedActions  : array<string|int, mixed>
$allowedProviders  : array<string|int, mixed>
$authenticationStyleInformation  : AuthenticationStyleInformation
$backendViewFactory  : BackendViewFactory
$extensionConfiguration  : ExtensionConfiguration
$logger  : LoggerInterface
$mfaProviderRegistry  : MfaProviderRegistry
$mfaRequired  : bool
$mfaTsConfig  : array<string|int, mixed>
$pageRenderer  : PageRenderer
$uriBuilder  : UriBuilder

Methods

__construct()  : mixed
handleRequest()  : ResponseInterface
Main action for handling the request and returning the response
injectMfaProviderRegistry()  : void
activateAction()  : ResponseInterface
Handle activate request, receiving from the setup view by forwarding the request to the appropriate provider.
addCustomAuthenticationFormStyles()  : void
addSuccessMessage()  : void
Add a flash message to inform the user about the successful activation of MFA and store this in the session, so it will be shown in the backend after the redirect.
cancelAction()  : ResponseInterface
Allow the user to cancel the multi-factor authentication setup process by calling logoff on the user object, to destroy the session and other already gathered information and finally initiate a redirect back to the login.
getBackendFavicon()  : string
Retrieves configured favicon for backend with fallback.
getBackendUser()  : BackendUserAuthentication
getLanguageService()  : LanguageService
getNormalizedParams()  : NormalizedParams
getRecommendedProvider()  : MfaProviderManifestInterface|null
Get the recommended provider
getUriForFileName()  : string
Returns the uri of a relative reference, resolves the "EXT:" prefix (way of referring to files inside extensions) and checks that the file is inside the project root of the TYPO3 installation
initializeMfaConfiguration()  : void
Initialize MFA configuration based on TSconfig and global configuration
initializeView()  : ViewInterface
Initialize the standalone view by setting the paths and assigning view variables
isActionAllowed()  : bool
isProviderAllowed()  : bool
isValidIdentifier()  : bool
Extend base identifier check to further evaluate whether the provider is allowed to be a default provider.
loadStylesheets()  : void
Load all registered stylesheets from $GLOBALS['TYPO3_CONF_VARS']['BE']['stylesheets']
log()  : void
Log debug information for MFA setup events
renderSelectionView()  : ResponseInterface
Allow the user - required to set up MFA - to select between all available providers
renderSetupView()  : ResponseInterface
Render form to setup a provider by using provider specific content
setupAction()  : ResponseInterface
Render form to setup a provider by using provider specific content. Fall back to provider selection view, in case no valid provider was yet selected.
setUpBasicPageRendererForBackend()  : void
Sets mandatory parameters for the PageRenderer.

Constants

ACTION_METHOD_MAP

protected mixed ACTION_METHOD_MAP = ['setup' => 'GET', 'activate' => 'POST', 'cancel' => 'GET']

Properties

$allowedActions

protected array<string|int, mixed> $allowedActions = []

$allowedProviders

protected array<string|int, mixed> $allowedProviders

$logger read-only

protected LoggerInterface $logger

$mfaTsConfig

protected array<string|int, mixed> $mfaTsConfig

Methods

__construct()

public __construct(UriBuilder $uriBuilder, AuthenticationStyleInformation $authenticationStyleInformation, PageRenderer $pageRenderer, ExtensionConfiguration $extensionConfiguration, LoggerInterface $logger, BackendViewFactory $backendViewFactory) : mixed
Parameters
$uriBuilder : UriBuilder
$authenticationStyleInformation : AuthenticationStyleInformation
$pageRenderer : PageRenderer
$extensionConfiguration : ExtensionConfiguration
$logger : LoggerInterface
$backendViewFactory : BackendViewFactory

handleRequest()

Main action for handling the request and returning the response

public handleRequest(ServerRequestInterface $request) : ResponseInterface
Parameters
$request : ServerRequestInterface
Return values
ResponseInterface

activateAction()

Handle activate request, receiving from the setup view by forwarding the request to the appropriate provider.

protected activateAction(ServerRequestInterface $request) : ResponseInterface
Parameters
$request : ServerRequestInterface
Return values
ResponseInterface

addCustomAuthenticationFormStyles()

protected addCustomAuthenticationFormStyles() : void

addSuccessMessage()

Add a flash message to inform the user about the successful activation of MFA and store this in the session, so it will be shown in the backend after the redirect.

protected addSuccessMessage(string $mfaProviderTitle) : void
Parameters
$mfaProviderTitle : string

cancelAction()

Allow the user to cancel the multi-factor authentication setup process by calling logoff on the user object, to destroy the session and other already gathered information and finally initiate a redirect back to the login.

protected cancelAction(ServerRequestInterface $request) : ResponseInterface
Parameters
$request : ServerRequestInterface
Return values
ResponseInterface

getBackendFavicon()

Retrieves configured favicon for backend with fallback.

protected getBackendFavicon(ExtensionConfiguration $extensionConfiguration, ServerRequestInterface $request) : string
Parameters
$extensionConfiguration : ExtensionConfiguration
$request : ServerRequestInterface
Return values
string

getUriForFileName()

Returns the uri of a relative reference, resolves the "EXT:" prefix (way of referring to files inside extensions) and checks that the file is inside the project root of the TYPO3 installation

protected getUriForFileName(ServerRequestInterface $request, string $filename) : string
Parameters
$request : ServerRequestInterface
$filename : string

The input filename/filepath to evaluate

Return values
string

Returns the filename of $filename if valid, otherwise blank string.

initializeMfaConfiguration()

Initialize MFA configuration based on TSconfig and global configuration

protected initializeMfaConfiguration() : void

initializeView()

Initialize the standalone view by setting the paths and assigning view variables

protected initializeView(ServerRequestInterface $request) : ViewInterface
Parameters
$request : ServerRequestInterface
Return values
ViewInterface

isActionAllowed()

protected isActionAllowed(string $action) : bool
Parameters
$action : string
Return values
bool

isProviderAllowed()

protected isProviderAllowed(string $identifier) : bool
Parameters
$identifier : string
Return values
bool

isValidIdentifier()

Extend base identifier check to further evaluate whether the provider is allowed to be a default provider.

protected isValidIdentifier(string $identifier) : bool
Parameters
$identifier : string
Return values
bool

loadStylesheets()

Load all registered stylesheets from $GLOBALS['TYPO3_CONF_VARS']['BE']['stylesheets']

protected loadStylesheets(PageRenderer $pageRenderer) : void
Parameters
$pageRenderer : PageRenderer

renderSelectionView()

Allow the user - required to set up MFA - to select between all available providers

protected renderSelectionView(ServerRequestInterface $request) : ResponseInterface
Parameters
$request : ServerRequestInterface
Return values
ResponseInterface

renderSetupView()

Render form to setup a provider by using provider specific content

protected renderSetupView(ServerRequestInterface $request, MfaProviderManifestInterface $mfaProvider) : ResponseInterface
Parameters
$request : ServerRequestInterface
$mfaProvider : MfaProviderManifestInterface
Return values
ResponseInterface

setupAction()

Render form to setup a provider by using provider specific content. Fall back to provider selection view, in case no valid provider was yet selected.

protected setupAction(ServerRequestInterface $request) : ResponseInterface
Parameters
$request : ServerRequestInterface
Return values
ResponseInterface

        
On this page

Search results