<?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\Core\Encoder;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasher;use Symfony\Component\Security\Core\User\LegacyPasswordAuthenticatedUserInterface;use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;use Symfony\Component\Security\Core\User\UserInterface;trigger_deprecation('symfony/security-core', '5.3', 'The "%s" class is deprecated, use "%s" instead.', UserPasswordEncoder::class, UserPasswordHasher::class);/** * A generic password encoder. * * @author Ariel Ferrandini <arielferrandini@gmail.com> * * @deprecated since Symfony 5.3, use {@link UserPasswordHasher} instead */class UserPasswordEncoder implements UserPasswordEncoderInterface{ private $encoderFactory; public function __construct(EncoderFactoryInterface $encoderFactory) { $this->encoderFactory = $encoderFactory; } /** * {@inheritdoc} */ public function encodePassword(UserInterface $user, string $plainPassword) { $encoder = $this->encoderFactory->getEncoder($user); if (!$user instanceof PasswordAuthenticatedUserInterface) { trigger_deprecation('symfony/password-hasher', '5.3', 'Not implementing the "%s" interface while using "%s" is deprecated, the "%s" class should implement it.', PasswordAuthenticatedUserInterface::class, __CLASS__, get_debug_type($user)); } $salt = $user->getSalt(); if ($salt && !$user instanceof LegacyPasswordAuthenticatedUserInterface) { trigger_deprecation('symfony/password-hasher', '5.3', 'Returning a string from "getSalt()" without implementing the "%s" interface is deprecated, the "%s" class should implement it.', LegacyPasswordAuthenticatedUserInterface::class, get_debug_type($user)); } return $encoder->encodePassword($plainPassword, $user->getSalt()); } /** * {@inheritdoc} */ public function isPasswordValid(UserInterface $user, string $raw) { if (null === $user->getPassword()) { return false; } $encoder = $this->encoderFactory->getEncoder($user); return $encoder->isPasswordValid($user->getPassword(), $raw, $user->getSalt()); } /** * {@inheritdoc} */ public function needsRehash(UserInterface $user): bool { if (null === $user->getPassword()) { return false; } $encoder = $this->encoderFactory->getEncoder($user); return $encoder->needsRehash($user->getPassword()); }}