Skip to content

Commit 8db3e39

Browse files
committed
Merge branch '5.3' into 5.4
* 5.3: [DependencyInjection] only allow `ReflectionNamedType` for `ServiceSubscriberTrait` Fix CS [Intl] Update the ICU data to 70.1 Default access_decision_manager.strategy option with merge. Signed-off-by: Alexander M. Turek <me@derrabus.de>
2 parents e9bc479 + fa5b4ec commit 8db3e39

File tree

3 files changed

+21
-23
lines changed

3 files changed

+21
-23
lines changed

DependencyInjection/MainConfiguration.php

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -67,28 +67,6 @@ public function getConfigTreeBuilder()
6767
$rootNode = $tb->getRootNode();
6868

6969
$rootNode
70-
->beforeNormalization()
71-
->ifTrue(function ($v) {
72-
if (!isset($v['access_decision_manager'])) {
73-
return true;
74-
}
75-
76-
if (!isset($v['access_decision_manager']['strategy'])
77-
&& !isset($v['access_decision_manager']['service'])
78-
&& !isset($v['access_decision_manager']['strategy_service'])
79-
&& !isset($v['access_decision_manager']['strategy-service'])
80-
) {
81-
return true;
82-
}
83-
84-
return false;
85-
})
86-
->then(function ($v) {
87-
$v['access_decision_manager']['strategy'] = self::STRATEGY_AFFIRMATIVE;
88-
89-
return $v;
90-
})
91-
->end()
9270
->beforeNormalization()
9371
->ifTrue(function ($v) {
9472
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\Strategy\AffirmativeStrategy;
4344
use Symfony\Component\Security\Core\Authorization\Strategy\ConsensusStrategy;
4445
use Symfony\Component\Security\Core\Authorization\Strategy\PriorityStrategy;
@@ -162,7 +163,7 @@ public function load(array $configs, ContainerBuilder $container)
162163
$container
163164
->getDefinition('security.access.decision_manager')
164165
->addArgument($this->createStrategyDefinition(
165-
$config['access_decision_manager']['strategy'],
166+
$config['access_decision_manager']['strategy'] ?? AccessDecisionManager::STRATEGY_AFFIRMATIVE,
166167
$config['access_decision_manager']['allow_if_all_abstain'],
167168
$config['access_decision_manager']['allow_if_equal_granted_denied']
168169
));

Tests/DependencyInjection/MainConfigurationTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AuthenticatorFactoryInterface;
1818
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
1919
use Symfony\Component\Config\Definition\Processor;
20+
use Symfony\Component\Security\Core\Authorization\AccessDecisionManager;
2021

2122
class MainConfigurationTest extends TestCase
2223
{
@@ -118,6 +119,24 @@ public function testUserCheckers()
118119
$this->assertEquals('app.henk_checker', $processedConfig['firewalls']['stub']['user_checker']);
119120
}
120121

122+
public function testConfigMergeWithAccessDecisionManager()
123+
{
124+
$config = [
125+
'access_decision_manager' => [
126+
'strategy' => AccessDecisionManager::STRATEGY_UNANIMOUS,
127+
],
128+
];
129+
$config = array_merge(static::$minimalConfig, $config);
130+
131+
$config2 = [];
132+
133+
$processor = new Processor();
134+
$configuration = new MainConfiguration([], []);
135+
$processedConfig = $processor->processConfiguration($configuration, [$config, $config2]);
136+
137+
$this->assertSame(AccessDecisionManager::STRATEGY_UNANIMOUS, $processedConfig['access_decision_manager']['strategy']);
138+
}
139+
121140
public function testFirewalls()
122141
{
123142
$factory = $this->createMock(AuthenticatorFactoryInterface::class);

0 commit comments

Comments
 (0)