Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 922e98e

Browse files
committed
feature #51332 [SecurityBundle] Deprecate the require_previous_session config option (alamirault)
This PR was squashed before being merged into the 6.4 branch. Discussion ---------- [SecurityBundle] Deprecate the `require_previous_session` config option | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | no | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | yes <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | Fix #51318 <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead --> | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> This PR deprecate the `require_previous_session` config option Remove is done in #51333 on 7.0 Commits ------- f92b0fc [SecurityBundle] Deprecate the `require_previous_session` config option
2 parents c005258 + f92b0fc commit 922e98e

File tree

12 files changed

+37
-9
lines changed

12 files changed

+37
-9
lines changed

UPGRADE-6.4.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@ Security
121121
* [BC break] Make `PersistentToken` immutable
122122
* Deprecate accepting only `DateTime` for `TokenProviderInterface::updateToken()`, use `DateTimeInterface` instead
123123

124+
SecurityBundle
125+
--------------
126+
127+
* Deprecate the `require_previous_session` config option. Setting it has no effect anymore
128+
124129
Serializer
125130
----------
126131

src/Symfony/Bundle/SecurityBundle/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ CHANGELOG
77
* Deprecate `Security::ACCESS_DENIED_ERROR`, `AUTHENTICATION_ERROR` and `LAST_USERNAME` constants, use the ones on `SecurityRequestAttributes` instead
88
* Allow an array of `pattern` in firewall configuration
99
* Add `$badges` argument to `Security::login`
10+
* Deprecate the `require_previous_session` config option. Setting it has no effect anymore
1011

1112
6.3
1213
---

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,12 @@ public function addConfiguration(NodeDefinition $node)
6767
;
6868

6969
foreach (array_merge($this->options, $this->defaultSuccessHandlerOptions, $this->defaultFailureHandlerOptions) as $name => $default) {
70-
if (\is_bool($default)) {
70+
if ('require_previous_session' === $name) {
71+
$builder
72+
->booleanNode($name)
73+
->setDeprecated('symfony/security-bundle', '6.4', 'Option "%node%" at "%path%" is deprecated, it will be removed in version 7.0. Setting it has no effect anymore.')
74+
->defaultValue($default);
75+
} elseif (\is_bool($default)) {
7176
$builder->booleanNode($name)->defaultValue($default);
7277
} else {
7378
$builder->scalarNode($name)->defaultValue($default);

src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Security/Factory/AbstractFactoryTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212
namespace Symfony\Bundle\SecurityBundle\Tests\DependencyInjection\Security\Factory;
1313

1414
use PHPUnit\Framework\TestCase;
15+
use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
1516
use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AbstractFactory;
17+
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
1618
use Symfony\Component\DependencyInjection\ChildDefinition;
1719
use Symfony\Component\DependencyInjection\ContainerBuilder;
1820

1921
class AbstractFactoryTest extends TestCase
2022
{
23+
use ExpectDeprecationTrait;
24+
2125
private ContainerBuilder $container;
2226

2327
protected function setUp(): void
@@ -107,6 +111,27 @@ public function testDefaultSuccessHandler($serviceId, $defaultHandlerInjection)
107111
}
108112
}
109113

114+
/**
115+
* @group legacy
116+
*/
117+
public function testRequirePreviousSessionOptionLegacy()
118+
{
119+
$this->expectDeprecation('Since symfony/security-bundle 6.4: Option "require_previous_session" at "root" is deprecated, it will be removed in version 7.0. Setting it has no effect anymore.');
120+
121+
$options = [
122+
'require_previous_session' => true,
123+
];
124+
125+
$factory = new StubFactory();
126+
$nodeDefinition = new ArrayNodeDefinition('root');
127+
$factory->addConfiguration($nodeDefinition);
128+
129+
$node = $nodeDefinition->getNode();
130+
$normalizedConfig = $node->normalize($options);
131+
132+
$node->finalize($normalizedConfig);
133+
}
134+
110135
public static function getSuccessHandlers()
111136
{
112137
return [

src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AbstractTokenCompareRoles/config.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ security:
2020
form_login:
2121
check_path: login
2222
remember_me: true
23-
require_previous_session: false
2423
logout: ~
2524
stateless: false
2625

src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AbstractTokenCompareRoles/legacy_config.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ security:
2020
form_login:
2121
check_path: login
2222
remember_me: true
23-
require_previous_session: false
2423
logout: ~
2524
stateless: false
2625

src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/JsonLoginLdap/config.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ security:
2929
stateless: true
3030
json_login_ldap:
3131
check_path: /login
32-
require_previous_session: false
3332
service: Symfony\Component\Ldap\Ldap
3433
dn_string: ''
3534
username_path: user.login

src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Logout/config_access.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ security:
1616
form_login:
1717
check_path: login
1818
remember_me: true
19-
require_previous_session: false
2019
logout: ~
2120
stateless: true
2221

src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Logout/config_cookie_clearing.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ security:
1616
form_login:
1717
check_path: login
1818
remember_me: true
19-
require_previous_session: false
2019
logout:
2120
delete_cookies:
2221
flavor: { path: null, domain: somedomain }

src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/Logout/config_csrf_enabled.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ security:
1616
form_login:
1717
check_path: login
1818
remember_me: true
19-
require_previous_session: false
2019
logout:
2120
enable_csrf: true
2221

0 commit comments

Comments
 (0)