1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\Security\Http\Authenticator;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
- use Symfony\Component\Security\Core\Exception\AuthenticationException;
- use Symfony\Component\Security\Http\Authenticator\Passport\PassportInterface;
- /**
- * The interface for all authenticators.
- *
- * @author Ryan Weaver <ryan@symfonycasts.com>
- * @author Amaury Leroux de Lens <amaury@lerouxdelens.com>
- * @author Wouter de Jong <wouter@wouterj.nl>
- *
- * @experimental in 5.2
- */
- interface AuthenticatorInterface
- {
- /**
- * Does the authenticator support the given Request?
- *
- * If this returns false, the authenticator will be skipped.
- *
- * Returning null means authenticate() can be called lazily when accessing the token storage.
- */
- public function supports(Request $request): ?bool;
- /**
- * Create a passport for the current request.
- *
- * The passport contains the user, credentials and any additional information
- * that has to be checked by the Symfony Security system. For example, a login
- * form authenticator will probably return a passport containing the user, the
- * presented password and the CSRF token value.
- *
- * You may throw any AuthenticationException in this method in case of error (e.g.
- * a UsernameNotFoundException when the user cannot be found).
- *
- * @throws AuthenticationException
- */
- public function authenticate(Request $request): PassportInterface;
- /**
- * Create an authenticated token for the given user.
- *
- * If you don't care about which token class is used or don't really
- * understand what a "token" is, you can skip this method by extending
- * the AbstractAuthenticator class from your authenticator.
- *
- * @see AbstractAuthenticator
- *
- * @param PassportInterface $passport The passport returned from authenticate()
- */
- public function createAuthenticatedToken(PassportInterface $passport, string $firewallName): TokenInterface;
- /**
- * Called when authentication executed and was successful!
- *
- * This should return the Response sent back to the user, like a
- * RedirectResponse to the last page they visited.
- *
- * If you return null, the current request will continue, and the user
- * will be authenticated. This makes sense, for example, with an API.
- */
- public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response;
- /**
- * Called when authentication executed, but failed (e.g. wrong username password).
- *
- * This should return the Response sent back to the user, like a
- * RedirectResponse to the login page or a 403 response.
- *
- * If you return null, the request will continue, but the user will
- * not be authenticated. This is probably not what you want to do.
- */
- public function onAuthenticationFailure(Request $request, AuthenticationException $exception): ?Response;
- }
|