Skip to content

Commit fa5b4ec

Browse files
committed
Merge branch '4.4' into 5.3
* 4.4: Default access_decision_manager.strategy option with merge.
2 parents 04a76b7 + 18d4a66 commit fa5b4ec

File tree

3 files changed

+21
-19
lines changed

3 files changed

+21
-19
lines changed

DependencyInjection/MainConfiguration.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,6 @@ public function getConfigTreeBuilder()
4848
$rootNode = $tb->getRootNode();
4949

5050
$rootNode
51-
->beforeNormalization()
52-
->ifTrue(function ($v) {
53-
if (!isset($v['access_decision_manager'])) {
54-
return true;
55-
}
56-
57-
if (!isset($v['access_decision_manager']['strategy']) && !isset($v['access_decision_manager']['service'])) {
58-
return true;
59-
}
60-
61-
return false;
62-
})
63-
->then(function ($v) {
64-
$v['access_decision_manager']['strategy'] = AccessDecisionManager::STRATEGY_AFFIRMATIVE;
65-
66-
return $v;
67-
})
68-
->end()
6951
->beforeNormalization()
7052
->ifTrue(function ($v) {
7153
if ($v['encoders'] ?? false) {

DependencyInjection/SecurityExtension.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
use Symfony\Component\PasswordHasher\Hasher\Pbkdf2PasswordHasher;
4040
use Symfony\Component\PasswordHasher\Hasher\PlaintextPasswordHasher;
4141
use Symfony\Component\PasswordHasher\Hasher\SodiumPasswordHasher;
42+
use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
4243
use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
4344
use Symfony\Component\Security\Core\Encoder\NativePasswordEncoder;
4445
use Symfony\Component\Security\Core\Encoder\SodiumPasswordEncoder;
@@ -163,7 +164,7 @@ public function load(array $configs, ContainerBuilder $container)
163164
} else {
164165
$container
165166
->getDefinition('security.access.decision_manager')
166-
->addArgument($config['access_decision_manager']['strategy'])
167+
->addArgument($config['access_decision_manager']['strategy'] ?? AccessDecisionManager::STRATEGY_AFFIRMATIVE)
167168
->addArgument($config['access_decision_manager']['allow_if_all_abstain'])
168169
->addArgument($config['access_decision_manager']['allow_if_equal_granted_denied']);
169170
}

Tests/DependencyInjection/MainConfigurationTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Symfony\Bundle\SecurityBundle\DependencyInjection\MainConfiguration;
1616
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
1717
use Symfony\Component\Config\Definition\Processor;
18+
use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
1819

1920
class MainConfigurationTest extends TestCase
2021
{
@@ -113,4 +114,22 @@ public function testUserCheckers()
113114

114115
$this->assertEquals('app.henk_checker', $processedConfig['firewalls']['stub']['user_checker']);
115116
}
117+
118+
public function testConfigMergeWithAccessDecisionManager()
119+
{
120+
$config = [
121+
'access_decision_manager' => [
122+
'strategy' => AccessDecisionManager::STRATEGY_UNANIMOUS,
123+
],
124+
];
125+
$config = array_merge(static::$minimalConfig, $config);
126+
127+
$config2 = [];
128+
129+
$processor = new Processor();
130+
$configuration = new MainConfiguration([], []);
131+
$processedConfig = $processor->processConfiguration($configuration, [$config, $config2]);
132+
133+
$this->assertSame(AccessDecisionManager::STRATEGY_UNANIMOUS, $processedConfig['access_decision_manager']['strategy']);
134+
}
116135
}

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