AbstractAuthenticationListener

abstract class AbstractAuthenticationListener implements ListenerInterface

The AbstractAuthenticationListener is the preferred base class for all browser-/HTTP-based authentication requests.

Subclasses likely have to implement the following: - an TokenInterface to hold authentication related data - an AuthenticationProvider to perform the actual authentication of the token, retrieve the UserInterface implementation from a database, and perform the specific account checks using the UserChecker

By default, this listener only is active for a specific path, e.g. /login_check. If you want to change this behavior, you can overwrite the requiresAuthentication() method.

Properties

protected $options
protected $logger
protected $authenticationManager
protected $providerKey
protected $httpUtils

Methods

__construct(TokenStorageInterface $tokenStorage, AuthenticationManagerInterface $authenticationManager, SessionAuthenticationStrategyInterface $sessionStrategy, HttpUtils $httpUtils, string $providerKey, AuthenticationSuccessHandlerInterface $successHandler, AuthenticationFailureHandlerInterface $failureHandler, array $options = array(), LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null)
setRememberMeServices(RememberMeServicesInterface $rememberMeServices)

Sets the RememberMeServices implementation to use.

handle(GetResponseEvent $event)

Handles form based authentication.

bool requiresAuthentication(Request $request)

Whether this request requires authentication.

TokenInterface|Response|null attemptAuthentication(Request $request)

Performs authentication.

Details

__construct(TokenStorageInterface $tokenStorage, AuthenticationManagerInterface $authenticationManager, SessionAuthenticationStrategyInterface $sessionStrategy, HttpUtils $httpUtils, string $providerKey, AuthenticationSuccessHandlerInterface $successHandler, AuthenticationFailureHandlerInterface $failureHandler, array $options = array(), LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null)

Parameters

TokenStorageInterface $tokenStorage
AuthenticationManagerInterface $authenticationManager
SessionAuthenticationStrategyInterface $sessionStrategy
HttpUtils $httpUtils
string $providerKey
AuthenticationSuccessHandlerInterface $successHandler
AuthenticationFailureHandlerInterface $failureHandler
array $options
LoggerInterface $logger
EventDispatcherInterface $dispatcher

Exceptions

InvalidArgumentException

setRememberMeServices(RememberMeServicesInterface $rememberMeServices)

Sets the RememberMeServices implementation to use.

Parameters

RememberMeServicesInterface $rememberMeServices

final handle(GetResponseEvent $event)

Handles form based authentication.

Parameters

GetResponseEvent $event

Exceptions

RuntimeException
SessionUnavailableException

protected bool requiresAuthentication(Request $request)

Whether this request requires authentication.

The default implementation only processes requests to a specific path, but a subclass could change this to only authenticate requests where a certain parameters is present.

Parameters

Request $request

Return Value

bool

abstract protected TokenInterface|Response|null attemptAuthentication(Request $request)

Performs authentication.

Parameters

Request $request

Return Value

TokenInterface|Response|null The authenticated token, null if full authentication is not possible, or a Response

Exceptions

AuthenticationException if the authentication fails