Skip to content

Commit 4946622

Browse files
committed
Merge branch '6.0' into 6.1
* 6.0: 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 c443c78 + 63ad902 commit 4946622

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
@@ -468,6 +468,46 @@ public function testCustomRememberMeHandler()
468468
$this->assertEquals([['firewall' => 'default']], $handler->getTag('security.remember_me_handler'));
469469
}
470470

471+
public function testSecretRememberMeHasher()
472+
{
473+
$container = $this->getRawContainer();
474+
475+
$container->register('custom_remember_me', \stdClass::class);
476+
$container->loadFromExtension('security', [
477+
'enable_authenticator_manager' => true,
478+
'firewalls' => [
479+
'default' => [
480+
'remember_me' => ['secret' => 'very'],
481+
],
482+
],
483+
]);
484+
485+
$container->compile();
486+
487+
$handler = $container->getDefinition('security.authenticator.remember_me_signature_hasher.default');
488+
$this->assertSame('very', $handler->getArgument(2));
489+
}
490+
491+
public function testSecretRememberMeHandler()
492+
{
493+
$container = $this->getRawContainer();
494+
495+
$container->register('custom_remember_me', \stdClass::class);
496+
$container->loadFromExtension('security', [
497+
'enable_authenticator_manager' => true,
498+
'firewalls' => [
499+
'default' => [
500+
'remember_me' => ['secret' => 'very', 'token_provider' => 'token_provider_id'],
501+
],
502+
],
503+
]);
504+
505+
$container->compile();
506+
507+
$handler = $container->getDefinition('security.authenticator.remember_me_handler.default');
508+
$this->assertSame('very', $handler->getArgument(1));
509+
}
510+
471511
public function sessionConfigurationProvider()
472512
{
473513
return [

0 commit comments

Comments
 (0)