Skip to content

Commit 63ad902

Browse files
committed
Merge branch '5.4' into 6.0
* 5.4: fix merge do not use mocks in tests when not necessary [Mailer] Missing import in first example [Security] Add test case for user not found [SecurityBundle] Use config's secret in remember-me signatures
2 parents 2d5e8d0 + 9806c9d commit 63ad902

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

DependencyInjection/Security/Factory/RememberMeFactory.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ public function createAuthenticator(ContainerBuilder $container, string $firewal
7171
$tokenVerifier = $this->createTokenVerifier($container, $firewallName, $config['token_verifier'] ?? null);
7272
$container->setDefinition($rememberMeHandlerId, new ChildDefinition('security.authenticator.persistent_remember_me_handler'))
7373
->replaceArgument(0, new Reference($tokenProviderId))
74+
->replaceArgument(1, $config['secret'])
7475
->replaceArgument(2, new Reference($userProviderId))
7576
->replaceArgument(4, $config)
7677
->replaceArgument(6, $tokenVerifier)
@@ -79,6 +80,7 @@ public function createAuthenticator(ContainerBuilder $container, string $firewal
7980
$signatureHasherId = 'security.authenticator.remember_me_signature_hasher.'.$firewallName;
8081
$container->setDefinition($signatureHasherId, new ChildDefinition('security.authenticator.remember_me_signature_hasher'))
8182
->replaceArgument(1, $config['signature_properties'])
83+
->replaceArgument(2, $config['secret'])
8284
;
8385

8486
$container->setDefinition($rememberMeHandlerId, new ChildDefinition('security.authenticator.signature_remember_me_handler'))
@@ -140,7 +142,10 @@ public function addConfiguration(NodeDefinition $node)
140142
;
141143

142144
$builder
143-
->scalarNode('secret')->isRequired()->cannotBeEmpty()->end()
145+
->scalarNode('secret')
146+
->cannotBeEmpty()
147+
->defaultValue('%kernel.secret%')
148+
->end()
144149
->scalarNode('service')->end()
145150
->arrayNode('user_providers')
146151
->beforeNormalization()

Tests/DependencyInjection/SecurityExtensionTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,46 @@ public function testCustomRememberMeHandler()
393393
$this->assertEquals([['firewall' => 'default']], $handler->getTag('security.remember_me_handler'));
394394
}
395395

396+
public function testSecretRememberMeHasher()
397+
{
398+
$container = $this->getRawContainer();
399+
400+
$container->register('custom_remember_me', \stdClass::class);
401+
$container->loadFromExtension('security', [
402+
'enable_authenticator_manager' => true,
403+
'firewalls' => [
404+
'default' => [
405+
'remember_me' => ['secret' => 'very'],
406+
],
407+
],
408+
]);
409+
410+
$container->compile();
411+
412+
$handler = $container->getDefinition('security.authenticator.remember_me_signature_hasher.default');
413+
$this->assertSame('very', $handler->getArgument(2));
414+
}
415+
416+
public function testSecretRememberMeHandler()
417+
{
418+
$container = $this->getRawContainer();
419+
420+
$container->register('custom_remember_me', \stdClass::class);
421+
$container->loadFromExtension('security', [
422+
'enable_authenticator_manager' => true,
423+
'firewalls' => [
424+
'default' => [
425+
'remember_me' => ['secret' => 'very', 'token_provider' => 'token_provider_id'],
426+
],
427+
],
428+
]);
429+
430+
$container->compile();
431+
432+
$handler = $container->getDefinition('security.authenticator.remember_me_handler.default');
433+
$this->assertSame('very', $handler->getArgument(1));
434+
}
435+
396436
public function sessionConfigurationProvider()
397437
{
398438
return [

0 commit comments

Comments
 (0)