|
12 | 12 | namespace Symfony\Component\Security\Core\Tests\Encoder; |
13 | 13 |
|
14 | 14 | use PHPUnit\Framework\TestCase; |
| 15 | +use Symfony\Component\PasswordHasher\Hasher\MessageDigestPasswordHasher; |
| 16 | +use Symfony\Component\PasswordHasher\Hasher\NativePasswordHasher; |
| 17 | +use Symfony\Component\PasswordHasher\Hasher\PasswordHasherAwareInterface; |
| 18 | +use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory; |
| 19 | +use Symfony\Component\PasswordHasher\Hasher\PlaintextPasswordHasher; |
15 | 20 | use Symfony\Component\Security\Core\Encoder\EncoderAwareInterface; |
16 | 21 | use Symfony\Component\Security\Core\Encoder\EncoderFactory; |
17 | 22 | use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder; |
18 | 23 | use Symfony\Component\Security\Core\Encoder\MigratingPasswordEncoder; |
19 | 24 | use Symfony\Component\Security\Core\Encoder\NativePasswordEncoder; |
| 25 | +use Symfony\Component\Security\Core\Encoder\SelfSaltingEncoderInterface; |
20 | 26 | use Symfony\Component\Security\Core\Encoder\SodiumPasswordEncoder; |
21 | 27 | use Symfony\Component\Security\Core\User\User; |
22 | 28 | use Symfony\Component\Security\Core\User\UserInterface; |
23 | | -use Symfony\Component\PasswordHasher\Hasher\PasswordHasherAwareInterface; |
24 | | -use Symfony\Component\PasswordHasher\Hasher\PasswordHasherFactory; |
25 | | -use Symfony\Component\PasswordHasher\Hasher\MessageDigestPasswordHasher; |
26 | 29 |
|
27 | 30 | /** |
28 | 31 | * @group legacy |
@@ -193,6 +196,28 @@ public function testHasherAwareCompat() |
193 | 196 | $expectedEncoder = new MessageDigestPasswordHasher('sha1'); |
194 | 197 | $this->assertEquals($expectedEncoder->hash('foo', ''), $encoder->hash('foo', '')); |
195 | 198 | } |
| 199 | + |
| 200 | + public function testLegacyPasswordHasher() |
| 201 | + { |
| 202 | + $factory = new EncoderFactory([ |
| 203 | + SomeUser::class => new PlaintextPasswordHasher(), |
| 204 | + ]); |
| 205 | + |
| 206 | + $encoder = $factory->getEncoder(new SomeUser()); |
| 207 | + self::assertNotInstanceOf(SelfSaltingEncoderInterface::class, $encoder); |
| 208 | + self::assertSame('foo{bar}', $encoder->encodePassword('foo', 'bar')); |
| 209 | + } |
| 210 | + |
| 211 | + public function testPasswordHasher() |
| 212 | + { |
| 213 | + $factory = new EncoderFactory([ |
| 214 | + SomeUser::class => new NativePasswordHasher(), |
| 215 | + ]); |
| 216 | + |
| 217 | + $encoder = $factory->getEncoder(new SomeUser()); |
| 218 | + self::assertInstanceOf(SelfSaltingEncoderInterface::class, $encoder); |
| 219 | + self::assertTrue($encoder->isPasswordValid($encoder->encodePassword('foo', null), 'foo', null)); |
| 220 | + } |
196 | 221 | } |
197 | 222 |
|
198 | 223 | class SomeUser implements UserInterface |
@@ -236,7 +261,6 @@ public function getEncoderName(): ?string |
236 | 261 | } |
237 | 262 | } |
238 | 263 |
|
239 | | - |
240 | 264 | class HasherAwareUser extends SomeUser implements PasswordHasherAwareInterface |
241 | 265 | { |
242 | 266 | public $hasherName = 'encoder_name'; |
|
0 commit comments