summaryrefslogtreecommitdiffstats
path: root/Authentication/Provider/UserAuthenticationProvider.php
diff options
context:
space:
mode:
Diffstat (limited to 'Authentication/Provider/UserAuthenticationProvider.php')
-rw-r--r--Authentication/Provider/UserAuthenticationProvider.php113
1 files changed, 0 insertions, 113 deletions
diff --git a/Authentication/Provider/UserAuthenticationProvider.php b/Authentication/Provider/UserAuthenticationProvider.php
deleted file mode 100644
index fa678b7..0000000
--- a/Authentication/Provider/UserAuthenticationProvider.php
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\Security\Authentication\Provider;
-
-use Symfony\Component\Security\User\AccountInterface;
-use Symfony\Component\Security\User\AccountCheckerInterface;
-use Symfony\Component\Security\Exception\UsernameNotFoundException;
-use Symfony\Component\Security\Exception\AuthenticationException;
-use Symfony\Component\Security\Exception\BadCredentialsException;
-use Symfony\Component\Security\Exception\AuthenticationServiceException;
-use Symfony\Component\Security\Authentication\Token\UsernamePasswordToken;
-use Symfony\Component\Security\Authentication\Token\TokenInterface;
-
-/**
- * UserProviderInterface retrieves users for UsernamePasswordToken tokens.
- *
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- */
-abstract class UserAuthenticationProvider implements AuthenticationProviderInterface
-{
- protected $hideUserNotFoundExceptions;
- protected $accountChecker;
- protected $providerKey;
-
- /**
- * Constructor.
- *
- * @param AccountCheckerInterface $accountChecker An AccountCheckerInterface interface
- * @param Boolean $hideUserNotFoundExceptions Whether to hide user not found exception or not
- */
- public function __construct(AccountCheckerInterface $accountChecker, $providerKey, $hideUserNotFoundExceptions = true)
- {
- if (empty($providerKey)) {
- throw new \InvalidArgumentException('$providerKey must not be empty.');
- }
-
- $this->accountChecker = $accountChecker;
- $this->providerKey = $providerKey;
- $this->hideUserNotFoundExceptions = $hideUserNotFoundExceptions;
- }
-
- /**
- * {@inheritdoc}
- */
- public function authenticate(TokenInterface $token)
- {
- if (!$this->supports($token)) {
- return null;
- }
-
- $username = null === $token->getUser() ? 'NONE_PROVIDED' : (string) $token;
-
- try {
- $user = $this->retrieveUser($username, $token);
-
- if (!$user instanceof AccountInterface) {
- throw new AuthenticationServiceException('retrieveUser() must return an AccountInterface.');
- }
-
- $this->accountChecker->checkPreAuth($user);
- $this->checkAuthentication($user, $token);
- $this->accountChecker->checkPostAuth($user);
-
- return new UsernamePasswordToken($user, $token->getCredentials(), $this->providerKey, $user->getRoles());
- } catch (UsernameNotFoundException $notFound) {
- if ($this->hideUserNotFoundExceptions) {
- throw new BadCredentialsException('Bad credentials', 0, $notFound);
- }
-
- throw $notFound;
- }
- }
-
- /**
- * {@inheritdoc}
- */
- public function supports(TokenInterface $token)
- {
- return $token instanceof UsernamePasswordToken && $this->providerKey === $token->getProviderKey();
- }
-
- /**
- * Retrieves the user from an implementation-specific location.
- *
- * @param string $username The username to retrieve
- * @param UsernamePasswordToken $token The Token
- *
- * @return array The user
- *
- * @throws AuthenticationException if the credentials could not be validated
- */
- abstract protected function retrieveUser($username, UsernamePasswordToken $token);
-
- /**
- * Does additional checks on the user and token (like validating the
- * credentials).
- *
- * @param AccountInterface $account The retrieved AccountInterface instance
- * @param UsernamePasswordToken $token The UsernamePasswordToken token to be authenticated
- *
- * @throws AuthenticationException if the credentials could not be validated
- */
- abstract protected function checkAuthentication(AccountInterface $account, UsernamePasswordToken $token);
-}