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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy