8000 Address https://github.com/symfony/symfony/pull/50946#pullrequestrevi… · MatTheCat/symfony@17d1964 · GitHub
[go: up one dir, main page]

Skip to content

Commit 17d1964

Browse files
committed
1 parent 65f4a67 commit 17d1964

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ public function load(array $configs, ContainerBuilder $container)
173173
$this->createFirewalls($config, $container);
174174

175175
if ($container::willBeAvailable('symfony/routing', ContainerLoader::class, ['symfony/security-bundle'])) {
176-
$this->createLogoutPathsParameter($config['firewalls'] ?? [], $container);
176+
$this->createLogoutUrisParameter($config['firewalls'] ?? [], $container);
177177
} else {
178178
$container->removeDefinition('security.route_loader.logout');
179179
}
@@ -1100,15 +1100,19 @@ private function getSortedFactories(): array
11001100
return $this->sortedFactories;
11011101
}
11021102

1103-
private function createLogoutPathsParameter(array $firewallsConfig, ContainerBuilder $container): void
1103+
private function createLogoutUrisParameter(array $firewallsConfig, ContainerBuilder $container): void
11041104
{
1105-
$logoutPaths = [];
1105+
$logoutUris = [];
11061106
foreach ($firewallsConfig as $name => $config) {
1107-
if ($logoutPath = $config['logout']['path'] ?? null) {
1108-
$logoutPaths[$name] = $logoutPath;
1107+
if (!$logoutPath = $config['logout']['path'] ?? null) {
1108+
continue;
1109+
}
1110+
1111+
if ('/' === $logoutPath[0]) {
1112+
$logoutUris[$name] = $logoutPath;
11091113
}
11101114
}
11111115

1112-
$container->setParameter('security.logout_paths', $logoutPaths);
1116+
$container->setParameter('security.logout_uris', $logoutUris);
11131117
}
11141118
}

src/Symfony/Bundle/SecurityBundle/Resources/config/security.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,8 @@
232232

233233
->set('security.route_loader.logout', LogoutRouteLoader::class)
234234
->args([
235-
'%security.logout_paths%',
236-
'security.logout_paths',
235+
'%security.logout_uris%',
236+
'security.logout_uris',
237237
])
238238
->tag('routing.route_loader')
239239

src/Symfony/Bundle/SecurityBundle/Routing/LogoutRouteLoader.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,25 @@
1515
use Symfony\Component\Routing\Route;
1616
use Symfony\Component\Routing\RouteCollection;
1717

18-
class LogoutRouteLoader
18+
final class LogoutRouteLoader
1919
{
2020
/**
21-
* @param iterable<string, string> $logoutPaths Logout paths indexed by the corresponding firewall name
22-
* @param string $parameterName Name of the container parameter containing {@see $logoutPaths}' value
21+
* @param array<string, string> $logoutUris Logout URIs indexed by the corresponding firewall name
22+
* @param string $parameterName Name of the container parameter containing {@see $logoutUris}' value
2323
*/
2424
public function __construct(
25-
private readonly iterable $logoutPaths,
25+
private readonly array $logoutUris,
2626
private readonly string $parameterName,
2727
) {
2828
}
2929

3030
public function __invoke(): RouteCollection
3131
{
3232
$collection = new RouteCollection();
33-
$collection->addResource(new ContainerParametersResource([$this->parameterName => $this->logoutPaths]));
33+
$collection->addResource(new ContainerParametersResource([$this->parameterName => $this->logoutUris]));
3434

3535
$routeNames = [];
36-
foreach ($this->logoutPaths as $firewallName => $logoutPath) {
36+
foreach ($this->logoutUris as $firewallName => $logoutPath) {
3737
$routeName = '_logout_'.$firewallName;
3838

3939
if (isset($routeNames[$logoutPath])) {

0 commit comments

Comments
 (0)
0