8000 minor #34739 [Security] Make remember-me user providers lazy (chalasr) · symfony/symfony@0d2f411 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0d2f411

Browse files
committed
minor #34739 [Security] Make remember-me user providers lazy (chalasr)
This PR was merged into the 5.1-dev branch. Discussion ---------- [Security] Make remember-me user providers lazy | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | no | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - As everywhere else Commits ------- bea7456 [Security} Make remember-me user providers lazy
2 parents c732122 + bea7456 commit 0d2f411

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RememberMeFactory.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory;
1313

1414
use Symfony\Component\Config\Definition\Builder\NodeDefinition;
15+
use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
1516
use Symfony\Component\DependencyInjection\ChildDefinition;
1617
use Symfony\Component\DependencyInjection\ContainerBuilder;
1718
use Symfony\Component\DependencyInjection\Reference;
@@ -104,7 +105,7 @@ public function create(ContainerBuilder $container, string $id, array $config, ?
104105
throw new \RuntimeException('You must configure at least one remember-me aware listener (such as form-login) for each firewall that has remember-me enabled.');
105106
}
106107

107-
$rememberMeServices->replaceArgument(0, array_unique($userProviders));
108+
$rememberMeServices->replaceArgument(0, new IteratorArgument(array_unique($userProviders)));
108109

109110
// remember-me listener
110111
$listenerId = 'security.authentication.listener.rememberme.'.$id;

src/Symfony/Bundle/SecurityBundle/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"symfony/security-core": "^4.4|^5.0",
2525
"symfony/security-csrf": "^4.4|^5.0",
2626
"symfony/security-guard": "^4.4|^5.0",
27-
"symfony/security-http": "^4.4.1|^5.0.1"
27+
"symfony/security-http": "^5.1"
2828
},
2929
"require-dev": {
3030
"doctrine/doctrine-bundle": "^1.5|^2.0",

src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeServices.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,17 @@ abstract class AbstractRememberMeServices implements RememberMeServicesInterface
4747
/**
4848
* @throws \InvalidArgumentException
4949
*/
50-
public function __construct(array $userProviders, string $secret, string $providerKey, array $options = [], LoggerInterface $logger = null)
50+
public function __construct(iterable $userProviders, string $secret, string $providerKey, array $options = [], LoggerInterface $logger = null)
5151
{
5252
if (empty($secret)) {
5353
throw new \InvalidArgumentException('$secret must not be empty.');
5454
}
5555
if (empty($providerKey)) {
5656
throw new \InvalidArgumentException('$providerKey must not be empty.');
5757
}
58+
if (!\is_array($userProviders) && !$userProviders instanceof \Countable) {
59+
$userProviders = iterator_to_array($userProviders, false);
60+
}
5861
if (0 === \count($userProviders)) {
5962
throw new \InvalidArgumentException('You must provide at least one user provider.');
6063
}

0 commit comments

Comments
 (0)
0