Commit Graph

3717 Commits

Author SHA1 Message Date
Nicolas Grekas
d96c7a0f40 Merge branch '5.1'
* 5.1:
  [Debug] fix test
  consistently use same types for strict comparisons
  [PhpUnitBridge] Skip internal classes in CoverageListenerTrait
  [VarExporter] unserialize() might throw an Exception on php 8.
  [SecurityHttp] Don't call createMock() with multiple interfaces.
  [ErrorHandler] Parse "x not found" errors correctly on php 8.
  Prevent parsing invalid octal digits as octal numbers
  remove unnecessary check for  existing request
  [DI] fix ContainerBuilder on PHP8
  [Console] Make sure $maxAttempts is an int or null.
  [VarDumper] Fix caster for invalid SplFileInfo objects on php 8.
  [Intl] Skip test cases that produce a TypeError on php 8.
  [PhpUnitBridge] Adjust output parsing for PHPUnit 9.3.
  [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
  add bosnian (bs) translation
  [Debug] Parse "x not found" errors correctly on php 8.
2020-09-08 16:20:09 +02:00
Alexander M. Turek
028ec0cf68 [SecurityHttp] Don't call createMock() with multiple interfaces. 2020-09-07 21:55:33 +02:00
dFayet
c1e3703efd Create impersonation_exit_path() and *_url() functions 2020-09-06 10:51:53 +02:00
Malte Schlüter
b50fc19af0 Add tests for translated error messages of json authentication 2020-09-03 13:33:24 +02:00
Malte Schlüter
7684663818 Translate failure messages of json authentication 2020-09-03 09:35:53 +02:00
Nicolas Grekas
4ee85e8e3b Merge branch '5.1'
* 5.1:
  Enable "native_constant_invocation" CS rule
  Make AbstractPhpFileCacheWarmer public
  Fix CS
  Add a warning comment on ldap empty password
  Bump Symfony version to 4.4.14
  Update VERSION for 4.4.13
  Update CHANGELOG for 4.4.13
  [PhpunitBridge] Fix deprecation type detection
2020-09-02 18:27:44 +02:00
Nicolas Grekas
034602699e Merge branch '4.4' into 5.1
* 4.4:
  Enable "native_constant_invocation" CS rule
  Make AbstractPhpFileCacheWarmer public
2020-09-02 18:23:27 +02:00
Nicolas Grekas
6c2a1c9a57 Merge branch '3.4' into 4.4
* 3.4:
  Enable "native_constant_invocation" CS rule
  Make AbstractPhpFileCacheWarmer public
2020-09-02 18:08:58 +02:00
Nicolas Grekas
4351a70637 Enable "native_constant_invocation" CS rule 2020-09-02 18:06:40 +02:00
Robin Chalas
46ce480801 [Security] Add some missing CHANGELOG entries 2020-09-02 17:49:20 +02:00
Fabien Potencier
afdb97e864 feature #37337 [Security] Configurable execution order for firewall listeners (scheb)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Security] Configurable execution order for firewall listeners

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | n/a

Hello there, I'm the author of `scheb/two-factor-bundle`, which extends Symfony's security layer with two-factor authentication. I've been closely following the recent changes by @wouterj to rework the security layer with "authenticators" (great work!). While I managed to make my bundle work with authenticators, I see some limitations in the security layer that I'd like to address to make such extensions easier to implement.

In #37336 I've submitted a draft to let security factories add their own authentication listeners to the firewall. This PR is intended to address the issue of execution order. If you look at the `Firewall` class

f64f59a9c0/src/Symfony/Component/Security/Http/Firewall.php (L62-L82)

authentication listeners are executed in the order of their creation. Additionally, there's hardcoded logic to execute `Symfony\Component\Security\Http\Firewall\AccessListener` always last and the logout listener second to last. I'd like to have a more flexible approach, to remove the hardcoded order and give authentication listeners the ability to determine their execution order.

I've added an optional interface to provide a priority to sort all registered authenitication listeners. Sorting is done in a compiler pass, so no time is wasted at runtime.

This is a draft, so I'd like to hear your opinion on this :)

Commits
-------

91388e871b Add ability to prioritize firewall listeners
2020-09-02 13:06:53 +02:00
Wouter de Jong
176aef63d9 Also mark the authenticator security system experimental in 5.2 2020-08-28 10:27:42 +02:00
Wouter de Jong
907ef311bf Lazily load the user during the check passport event 2020-08-27 16:28:46 +02:00
Fabien Potencier
6d521d4072 feature #37942 [Security] Renamed provider key to firewall name (wouterj)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Security] Renamed provider key to firewall name

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | Fix #15207
| License       | MIT
| Doc PR        | tbd

This fixes the `$providerKey` argument names on the classes that will remain in use, even when the new Security system will take over. @fabpot do you think these changes are worth it?

Officially, all token classes are not marked as `@final`. Do I need to take into account when someone is overriding the `getProviderKey()` method? Also, I couldn't find a way to trigger a deprecation notice for deprecated properties, is this a problem?

Commits
-------

91b276326d Renamed $providerKey to $firewallName
2020-08-26 17:45:58 +02:00
Wouter de Jong
91b276326d Renamed $providerKey to $firewallName 2020-08-26 17:34:05 +02:00
Fabien Potencier
27bb2828e3 Merge branch '5.1'
* 5.1:
  Backport: Improve link script with rollback when using symlink
  fix more numeric cases changing in PHP 8
  Fixed autoLogin() returning null
  [Notifier] add doc for free mobile dsn
2020-08-26 10:31:06 +02:00
Wouter de Jong
93aea910d9 Fixed autoLogin() returning null 2020-08-25 17:26:05 +02:00
Yannick Ihmels
d23434bc23 [Security] Pass Passport to LoginFailureEvent 2020-08-22 19:11:43 +02:00
Maxime Steinhausser
e04386c187 [Security] Fix tests 2020-08-19 14:13:04 +02:00
Fabien Potencier
fbcdbf99a4 Merge branch '5.1'
* 5.1:
  fix: clarify parameter name to comply with deprecations from #34074
  [Sendgrid-Mailer] Fixed envelope recipients on sendgridApiTransport
  mark the AssertingContextualValidator class as internal
  Fix the parameter names in the SecurityFactoryInterface::create() method
  [Serializer][ClassDiscriminatorMapping] Fix getMappedObjectType() when a discriminator child extends another one
  make return type correct
2020-08-18 13:41:45 +02:00
Dennis Langen
91249ed0bf fix: clarify parameter name to comply with deprecations from #34074 2020-08-18 13:34:54 +02:00
Fabien Potencier
830cc5b3a3 Merge branch '5.1'
* 5.1:
  Remove obsolete file
  Add missing license
2020-08-18 09:41:46 +02:00
Fabien Potencier
8b78ad3a72 Add missing license 2020-08-18 09:39:30 +02:00
Mbechezi Nawo
e4a14ac89d Verifying if the password field is null 2020-08-18 08:32:19 +02:00
Wouter de Jong
98802e58d3 Use PUBLIC_ACCESS from AuthenticatedVoter 2020-08-17 21:10:31 +02:00
Fabien Potencier
5d15ce4e65 Merge branch '5.1'
* 5.1:
  stop using deprecated PHPUnit APIs
2020-08-17 12:01:44 +02:00
Fabien Potencier
38e5a15ff4 Merge branch '4.4' into 5.1
* 4.4:
  stop using deprecated PHPUnit APIs
2020-08-17 12:01:29 +02:00
Christian Flothmann
3d209c46e4 stop using deprecated PHPUnit APIs 2020-08-17 11:35:39 +02:00
Fabien Potencier
a36f34f0fb Fix CS 2020-08-17 09:48:54 +02:00
Wouter de Jong
f17746c7c0 [Security] Add missing NullToken vote 2020-08-16 07:27:34 +02:00
Christian Scheb
91388e871b Add ability to prioritize firewall listeners 2020-08-13 16:50:09 +02:00
Fabien Potencier
f58b50c336 Merge branch '5.1'
* 5.1:
  Postpone BC layer removal to 6.0.
  add validator translation 99 for Italian language
  stop using the deprecated at() PHPUnit matcher
  Fix typehint phpdoc
2020-08-13 16:19:50 +02:00
Fabien Potencier
cb92a3c8c1 Merge branch '4.4' into 5.1
* 4.4:
  add validator translation 99 for Italian language
  stop using the deprecated at() PHPUnit matcher
  Fix typehint phpdoc
2020-08-13 16:19:42 +02:00
Fabien Potencier
544d276cba Merge branch '3.4' into 4.4
* 3.4:
  add validator translation 99 for Italian language
  stop using the deprecated at() PHPUnit matcher
  Fix typehint phpdoc
2020-08-13 16:18:44 +02:00
Fabien Potencier
31c194f7de feature #37359 [Security] Add event to inspect authenticated token before it becomes effective (scheb)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Security] Add event to inspect authenticated token before it becomes effective

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | n/a

Hello there, I'm the author of `scheb/two-factor-bundle`, which extends Symfony's security layer with two-factor authentication. I've been closely following the recent changes by @wouterj to rework the security layer with "authenticators" (great work!). While I managed to make my bundle work with authenticators, I see some limitations in the security layer that I'd like to address to make such extensions easier to implement.

This PR adds a new event, which is disapatched right after the authenticated token has been created by the authenticator, to "announce" it to the application *before* it becomes effective to the security system. The event works similar to `ResponseEvent`, but for security token. It allows listeners to inspect the new token before it becomes effective and - most importantly - apply modifications to it. So components other than the authenticator will be able to influence how the security token looks like, that will be set to the security layer on successful authentication.

Why would you want to do this? Of course I'm looking at this from the 2fa perspective. To make 2fa work, it's necessary to prevent a newly created authenticated token from becoming visible to the security system and therefore exposing its privileges/roles. This is done by replacing the authenticated token with a temporary "TwoFactorToken". Currently I'm doing this through dependency injection, getting all the registered authenticators and decorating them with my own token-exchange logic. This is not very clean and overly complicated, but it works. Adding this event as a hook-in point would allow for a much cleaner integration for any component that wants to have a saying in how the security token should look like.

Commits
-------

20309646b7 [Security] Add event to inspect authenticated token before it becomes effective
2020-08-12 18:06:37 +02:00
Christian Scheb
20309646b7 [Security] Add event to inspect authenticated token before it becomes effective 2020-08-12 18:06:29 +02:00
Christian Flothmann
850389731c stop using the deprecated at() PHPUnit matcher 2020-08-12 16:55:37 +02:00
Fabien Potencier
b912af9261 Merge branch '5.1'
* 5.1:
  Fix typo
  Fix deprecated libxml_disable_entity_loader
  Add Tagalog translations for validator messages 94, 95, 96 and 99
  PHPUnit's assertContains() performs strict comparisons now.
  [ClassLoader][Routing] Fix namespace parsing on php 8.
  Fix deprecated libxml_disable_entity_loader
  Made reference to PHPUnit\Util\XML::loadfile php5-compatible.
  [Validator] Add missing translations for german and vietnamese
  Modernized deprecated PHPUnit assertion calls
  [Console] The message of "class not found" errors has changed in php 8.
  The PHPUnit\Util\XML class has been removed in PHPUnit 9.3.
  [Console] Make sure we pass a numeric array of arguments to call_user_func_array().
  Remove outdated references from base_js.html.twig file
  [String] We cannot have a "provides" function in test cases.
  Typo: somes styles fixed
  [Serializer] Fix that it will never reach DOMNode
  [Validator] sync translations
  [VarDumper] Improve previous fix on light array coloration
  [Cache] Fix #37667
2020-08-10 10:10:48 +02:00
Fabien Potencier
c44c606b11 Merge branch '4.4' into 5.1
* 4.4:
  Fix typo
  Fix deprecated libxml_disable_entity_loader
  Add Tagalog translations for validator messages 94, 95, 96 and 99
  PHPUnit's assertContains() performs strict comparisons now.
  [ClassLoader][Routing] Fix namespace parsing on php 8.
  Fix deprecated libxml_disable_entity_loader
  Made reference to PHPUnit\Util\XML::loadfile php5-compatible.
  [Validator] Add missing translations for german and vietnamese
  Modernized deprecated PHPUnit assertion calls
  [Console] The message of "class not found" errors has changed in php 8.
  The PHPUnit\Util\XML class has been removed in PHPUnit 9.3.
  [Console] Make sure we pass a numeric array of arguments to call_user_func_array().
  [Serializer] Fix that it will never reach DOMNode
  [Validator] sync translations
  [VarDumper] Improve previous fix on light array coloration
  [Cache] Fix #37667
2020-08-10 10:03:57 +02:00
Fabien Potencier
3a04739a83 Merge branch '3.4' into 4.4
* 3.4:
  Add Tagalog translations for validator messages 94, 95, 96 and 99
  PHPUnit's assertContains() performs strict comparisons now.
  [ClassLoader][Routing] Fix namespace parsing on php 8.
  Fix deprecated libxml_disable_entity_loader
  Made reference to PHPUnit\Util\XML::loadfile php5-compatible.
  [Validator] Add missing translations for german and vietnamese
  Modernized deprecated PHPUnit assertion calls
  [Console] The message of "class not found" errors has changed in php 8.
  The PHPUnit\Util\XML class has been removed in PHPUnit 9.3.
  [Console] Make sure we pass a numeric array of arguments to call_user_func_array().
  [Serializer] Fix that it will never reach DOMNode
  [Validator] sync translations
  [VarDumper] Improve previous fix on light array coloration
  [Cache] Fix #37667
2020-08-10 09:27:51 +02:00
Alexander M. Turek
4bf640543a Made reference to PHPUnit\Util\XML::loadfile php5-compatible. 2020-08-09 11:07:58 +02:00
Fabien Potencier
5c6727211d minor #37773 Modernized deprecated PHPUnit assertion calls (derrabus)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Modernized deprecated PHPUnit assertion calls

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #37564
| License       | MIT
| Doc PR        | N/A

Some assertions have been renamed in PHPUnit 9. PhpUnitBridge should already have polyfills in place for those methods, so it should be save to use them.

Commits
-------

ab417f7040 Modernized deprecated PHPUnit assertion calls
2020-08-09 10:13:56 +02:00
Alexander M. Turek
ab417f7040 Modernized deprecated PHPUnit assertion calls 2020-08-09 10:13:48 +02:00
Alexander M. Turek
8b801c1269 The PHPUnit\Util\XML class has been removed in PHPUnit 9.3. 2020-08-08 21:12:02 +02:00
Simon Heimberg
cea6ebda5b [Security] class Security implements AuthorizationCheckerInterface
The class has the method of AuthorizationCheckerInterface already.
2020-07-31 19:01:17 +02:00
Alexander M. Turek
ec525e6e04 Fix PHPUnit 8.5 deprecations. 2020-07-23 11:37:51 +02:00
Wouter de Jong
e37091541c Use NullToken while checking authorization
This allows to e.g. have some objects that can be viewed by anyone (even unauthenticated users).
2020-07-20 21:46:53 +02:00
Nicolas Grekas
c046229c9e Merge branch '5.1'
* 5.1:
  minor #37121 [Contracts] Add missing "extra.thanks" entries in composer.json (nicolas-grekas)
  [Process] Fix Permission Denied error when writing sf_proc_00 lock files on Windows
  fix handling null as empty data
  [Security\Http] Skip remember-me logout on empty token
  Missing return in loadValuesForChoices method
  No need to create an issue when creating a PR
  Use ">=" for the "php" requirement
  [HttpClient] Fix promise behavior in HttplugClient
  [Console] Fixes question input encoding on Windows
2020-07-06 15:25:45 +02:00
Robin Chalas
551f9418a3 [Security\Http] Skip remember-me logout on empty token 2020-07-06 12:10:25 +02:00
Alexander M. Turek
28e6f6f72c Move event alias mappings to their components. 2020-06-30 16:13:44 +02:00
Christian Flothmann
6aecad7438 Merge branch '5.1'
* 5.1:
  fix compatibility with Doctrine DBAL 3.0
  skip test if guesser is not supported
  Added missing license headers
2020-06-29 16:32:23 +02:00
Fabien Potencier
f706d6a276 minor #37445 [Security] Added missing license headers (wouterj)
This PR was merged into the 5.1 branch.

Discussion
----------

[Security] Added missing license headers

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

See 3be6ce121b

Seems like the fabbot reviews (and I) missed quite a lot of these in my big security PR.

Commits
-------

ea81b61e5f Added missing license headers
2020-06-29 10:19:14 +02:00
Wouter de Jong
ea81b61e5f Added missing license headers 2020-06-28 20:41:01 +02:00
Nicolas Grekas
75031a1230 Merge branch '5.1'
* 5.1:
  Fix test that fails on old distros
  Fix: compatibility with phpunit 9.3
  [DoctrineBridge] work around Connection::ping() deprecation
  [MimeType] Duplicated MimeType due to PHP Bug
  [HttpClient] fix casting TraceableResponse to php streams
  [DI] fix parsing of argument type=binary in xml
  fix guessing form types for DateTime types
  fix handling typed properties as constraint options
  Fix the 'supports' method argument type of the security voter
  Use the driverConnection executeUpdate method
2020-06-28 17:36:15 +02:00
Nicolas Grekas
4ad5079082 Merge branch '5.0' into 5.1
* 5.0:
  Fix test that fails on old distros
  Fix: compatibility with phpunit 9.3
  [DoctrineBridge] work around Connection::ping() deprecation
  [MimeType] Duplicated MimeType due to PHP Bug
  [DI] fix parsing of argument type=binary in xml
  fix guessing form types for DateTime types
  fix handling typed properties as constraint options
  Fix the 'supports' method argument type of the security voter
  Use the driverConnection executeUpdate method
2020-06-28 17:32:35 +02:00
François Pluchino
b8192eecab Fix the 'supports' method argument type of the security voter 2020-06-25 11:01:55 +02:00
Fabien Potencier
9cff4e1188 Add missing CHANGELOG 2020-06-21 19:32:04 +02:00
Fabien Potencier
3267e8e66f feature #37318 [Security] Add attributes on Passport (fabpot)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Security] Add attributes on Passport

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | not yet

see https://github.com/symfonycorp/connect/pull/95
/cc @wouterj

Commits
-------

440ada3c5f [Security] Add attributes on Passport
2020-06-20 17:04:28 +02:00
Fabien Potencier
440ada3c5f [Security] Add attributes on Passport 2020-06-20 09:18:00 +02:00
Nicolas Grekas
092632dc14 Merge branch '5.1'
* 5.1: (28 commits)
  [DI] fix
  Use "composer/package-versions-deprecated" when possible
  Fix
  Small update in our internal terminology
  Fix support for PHP8 union types
  [VarDumper] fix typo
  [Lock][Messenger] Fix precedence of DSN options for 5.1
  Fix support for PHP8 union types
  [FrameworkBundle] preserve dots in query-string when redirecting
  [3.4] Fix support for PHP8 union types
  [PhpUnitBridge] Streamline ansi/no-ansi of composer according to phpunit --colors option
  [3.4] Small update in our internal terminology
  [Cache] fix compat with DBAL v3
  Remove unnecessary null check
  [HttpFoundation] Allow `null` in InputBag@set
  [HttpClient] Convert CurlHttpClient::handlePush() to instance method
  Fix package rename when releasing
  bumped Symfony version to 5.1.3
  updated VERSION for 5.1.2
  updated CHANGELOG for 5.1.2
  ...
2020-06-18 21:55:03 +02:00
Christian Scheb
a74a506883 Remove unnecessary null check 2020-06-18 16:13:31 +02:00
Fabien Potencier
b04512a6fa Merge branch '5.1'
* 5.1:
  [Security] Run functional tests also for the authenticator system
  Fix register csrf protection listener
  bumped Symfony version to 5.1.2
  updated VERSION for 5.1.1
  updated CHANGELOG for 5.1.1
2020-06-13 17:58:10 +02:00
Wouter de Jong
49639caeaf [Security] Run functional tests also for the authenticator system 2020-06-13 17:06:42 +02:00
Nicolas Grekas
ec6b2801ec Merge branch '5.1'
* 5.1: (36 commits)
  Fixed left-over debug statement
  set column length for mysql 5.6 compatibility
  [Mime] Remove unused var
  [HttpClient] fix monitoring timeouts when other streams are active
  [PhpUnitBridge] fix syntax on PHP 5.3
  [PhpUnitBridge] Fix undefined index when output of "composer show" cannot be parsed
  properly cascade validation to child forms
  [PropertyAccess] Fix getter call order BC
  [PhpUnitBridge] fix undefined var on version 3.4
  Fix invalid char in SQS Headers
  Move ajax clear event listener initialization on loadToolbar
  [HttpClient] Throw JsonException instead of TransportException on empty response in Response::toArray()
  Fix CS
  FrameworkBundle Serializer issue
  register event listeners depending on the installed packages
  take into account the context when preserving empty array objects
  Only register CSRF protection listener if CSRF is available
  [VarExporter] tfix: s/markAsSkipped/markTestSkipped/
  Also check PUBLIC_ACCESS for authenticated tokens
  Fix enabled_locales behavior
  ...
2020-06-07 17:48:04 +02:00
Wouter de Jong
0ac530f460 Also check PUBLIC_ACCESS for authenticated tokens
Currently, authenticated users are denied access for pages that have
PUBLIC_ACCESS, as this attribute is only checked when no token was set.
2020-05-31 23:41:52 +02:00
Nicolas Grekas
608b770f1b Merge branch '5.1'
* 5.1:
  [Validator] use "allowedVariables" to configure the ExpressionLanguageSyntax constraint
  [Security] Fixed AbstractToken::hasUserChanged()
  [PropertyAccess] fix merge
  [DI] fix typo
2020-05-30 23:59:47 +02:00
Nicolas Grekas
3e05f1dafe Merge branch '5.0' into 5.1
* 5.0:
  [Security] Fixed AbstractToken::hasUserChanged()
  [DI] fix typo
2020-05-30 23:52:37 +02:00
Nicolas Grekas
41b95952d3 Merge branch '4.4' into 5.0
* 4.4:
  [Security] Fixed AbstractToken::hasUserChanged()
  [DI] fix typo
2020-05-30 23:52:15 +02:00
Wouter de Jong
f297beb42c [Security] Fixed AbstractToken::hasUserChanged() 2020-05-30 23:50:11 +02:00
Nicolas Grekas
6567abe3f1 Merge branch '5.1'
* 5.1:
  Fix abstract method name in PHP doc block
  Various cleanups
  [HttpClient] fix issues in tests
  Fixes sprintf(): Too few arguments in form transformer
  [Console] Fix QuestionHelper::disableStty()
  [Validator] Use Mime component to determine mime type for file validator
  validate subforms in all validation groups
  Update Hungarian translations
  Add meaningful message when Process is not installed (ProcessHelper)
  [Messenger] Change the default notify timeout value for PostgreSQL
  [PropertyAccess] Fix TypeError parsing again.
  [TwigBridge] fix fallback html-to-txt body converter
  [Security/Http] fix merge
  [ErrorHandler] fix setting $trace to null in FatalError
  [Form] add missing Czech validators translation
  [Validator] add missing Czech translations
  never directly validate Existence (Required/Optional) constraints
2020-05-30 22:38:10 +02:00
Nicolas Grekas
51da6239ba Merge branch '5.0' into 5.1
* 5.0:
  Fix abstract method name in PHP doc block
  Various cleanups
  [HttpClient] fix issues in tests
  Fixes sprintf(): Too few arguments in form transformer
  [Console] Fix QuestionHelper::disableStty()
  [Validator] Use Mime component to determine mime type for file validator
  validate subforms in all validation groups
  Update Hungarian translations
  Add meaningful message when Process is not installed (ProcessHelper)
  [PropertyAccess] Fix TypeError parsing again.
  [TwigBridge] fix fallback html-to-txt body converter
  [Security/Http] fix merge
  [ErrorHandler] fix setting $trace to null in FatalError
  [Form] add missing Czech validators translation
  [Validator] add missing Czech translations
  never directly validate Existence (Required/Optional) constraints
2020-05-30 22:35:19 +02:00
Nicolas Grekas
8bbf62ea16 Merge branch '4.4' into 5.0
* 4.4:
  [Security/Http] fix merge
  [ErrorHandler] fix setting $trace to null in FatalError
2020-05-28 14:17:48 +02:00
Nicolas Grekas
15d4f7ac04 [Security/Http] fix merge 2020-05-28 14:17:38 +02:00
Nicolas Grekas
71d1d70945 Merge branch '5.1'
* 5.1:
  Handle fetch mode deprecation of DBAL 2.11.
  Fixed security-* package dependencies
  Fixed handling of CSRF logout error
  [WebProfilerBundle] changed label of memory usage in time panel (Mb into MiB)
  [DotEnv][WebLink][Templating][ErrorHandler] Updated README with minimal example
2020-05-28 10:21:24 +02:00
Nicolas Grekas
f36ec7cc81 Merge branch '5.0' into 5.1
* 5.0:
  Handle fetch mode deprecation of DBAL 2.11.
  Fixed handling of CSRF logout error
  [WebProfilerBundle] changed label of memory usage in time panel (Mb into MiB)
  [DotEnv][WebLink][Templating][ErrorHandler] Updated README with minimal example
2020-05-28 10:20:44 +02:00
Nicolas Grekas
da25ef172d Merge branch '4.4' into 5.0
* 4.4:
  Handle fetch mode deprecation of DBAL 2.11.
  Fixed handling of CSRF logout error
  [WebProfilerBundle] changed label of memory usage in time panel (Mb into MiB)
  [DotEnv][WebLink][Templating][ErrorHandler] Updated README with minimal example
2020-05-28 10:20:26 +02:00
Nicolas Grekas
dfe8c816a6 Merge branch '3.4' into 4.4
* 3.4:
  Handle fetch mode deprecation of DBAL 2.11.
  Fixed handling of CSRF logout error
2020-05-28 10:15:49 +02:00
Wouter de Jong
50348f2eb7 Fixed handling of CSRF logout error 2020-05-26 17:30:38 +02:00
Nicolas Grekas
9e0f34cd12 Merge branch '5.1'
* 5.1:
  Allow email message to have "To", "Cc", or "Bcc" header to be valid
  [FrameworkBundle] Removed detection of Serializer < 3.2
  Update pull request template for 5.1.
  [Security/Core] fix PHP8 deprecation
2020-05-25 14:33:49 +02:00
Nicolas Grekas
780c57672b Merge branch '5.0' into 5.1
* 5.0:
  Allow email message to have "To", "Cc", or "Bcc" header to be valid
  [FrameworkBundle] Removed detection of Serializer < 3.2
  Update pull request template for 5.1.
  [Security/Core] fix PHP8 deprecation
2020-05-25 14:33:44 +02:00
Nicolas Grekas
2c262df4ef Merge branch '4.4' into 5.0
* 4.4:
  Allow email message to have "To", "Cc", or "Bcc" header to be valid
  [FrameworkBundle] Removed detection of Serializer < 3.2
  Update pull request template for 5.1.
  [Security/Core] fix PHP8 deprecation
2020-05-25 14:33:25 +02:00
Nicolas Grekas
aa53bdb77b [Security/Core] fix PHP8 deprecation 2020-05-24 11:45:24 +02:00
Nicolas Grekas
757b8f7c59 Merge branch '5.1'
* 5.1: (33 commits)
  [Cache] $lifetime cannot be null
  [Serializer] minor cleanup
  fix merge
  Run PHP 8 as 7.4.99
  Remove calls to deprecated ReflectionParameter::getClass().
  [VarDumper] fix PHP 8 support
  Removed "services" prototype node from "custom_authenticator"
  Add php 8 to travis.
  [Cache] Accessing undefined constants raises an Error in php8
  [Cache] allow DBAL v3
  Skip Doctrine DBAL on php 8 until we have a compatible version.
  [DomCrawler] Catch expected ValueError.
  Made method signatures compatible with their corresponding traits.
  [ErrorHandler] Apply php8 fixes from Debug component.
  [DomCrawler] Catch expected ValueError.
  [Validator] Catch expected ValueError.
  [VarDumper] ReflectionFunction::isDisabled() is deprecated.
  [BrowserKit] Raw body with custom Content-Type header
  Revert https://github.com/symfony/symfony/pull/34986
  Make ExpressionLanguageSyntax validator usable with annotation
  ...
2020-05-23 15:10:26 +02:00
Nicolas Grekas
56faca9c38 Merge branch '5.0' into 5.1
* 5.0: (28 commits)
  [Cache] $lifetime cannot be null
  [Serializer] minor cleanup
  fix merge
  Run PHP 8 as 7.4.99
  Remove calls to deprecated ReflectionParameter::getClass().
  [VarDumper] fix PHP 8 support
  Add php 8 to travis.
  [Cache] Accessing undefined constants raises an Error in php8
  [Cache] allow DBAL v3
  Skip Doctrine DBAL on php 8 until we have a compatible version.
  [DomCrawler] Catch expected ValueError.
  Made method signatures compatible with their corresponding traits.
  [ErrorHandler] Apply php8 fixes from Debug component.
  [DomCrawler] Catch expected ValueError.
  [Validator] Catch expected ValueError.
  [VarDumper] ReflectionFunction::isDisabled() is deprecated.
  [BrowserKit] Raw body with custom Content-Type header
  [PropertyAccess] Parse php 8 TypeErrors correctly.
  [Intl] Fix call to ReflectionProperty::getValue() for static properties.
  [HttpKernel] Prevent calling method_exists() with non-string values.
  ...
2020-05-23 15:08:13 +02:00
Nicolas Grekas
08afeed555 Merge branch '4.4' into 5.0
* 4.4: (27 commits)
  [Serializer] minor cleanup
  fix merge
  Run PHP 8 as 7.4.99
  Remove calls to deprecated ReflectionParameter::getClass().
  [VarDumper] fix PHP 8 support
  Add php 8 to travis.
  [Cache] Accessing undefined constants raises an Error in php8
  [Cache] allow DBAL v3
  Skip Doctrine DBAL on php 8 until we have a compatible version.
  [DomCrawler] Catch expected ValueError.
  Made method signatures compatible with their corresponding traits.
  [ErrorHandler] Apply php8 fixes from Debug component.
  [DomCrawler] Catch expected ValueError.
  [Validator] Catch expected ValueError.
  [VarDumper] ReflectionFunction::isDisabled() is deprecated.
  [BrowserKit] Raw body with custom Content-Type header
  [PropertyAccess] Parse php 8 TypeErrors correctly.
  [Intl] Fix call to ReflectionProperty::getValue() for static properties.
  [HttpKernel] Prevent calling method_exists() with non-string values.
  Fix wrong roles comparison
  ...
2020-05-23 14:58:59 +02:00
Thibaut Salanon
7d2ad4b265 Fix wrong roles comparison 2020-05-22 14:29:11 +02:00
Nicolas Grekas
430b884570 Merge branch '5.1'
* 5.1:
  [PhpUnitBridge] fix leftover
  [PhpUnitBridge] fix installing under PHP >= 8
  Use ">=" for the "php" requirement
  bump icu 67.1
  [DI] Remove preload primitive types
  [Validator] Add missing translations of nn locale
  [HttpKernel] Fix that the `Store` would not save responses with the X-Content-Digest header present
  [Intl] bump icu 67.1
  [Validator] allow passing a validator to Validation::createCallable()
2020-05-20 19:44:07 +02:00
Nicolas Grekas
e65cdb685f Merge branch '5.0' into 5.1
* 5.0:
  [PhpUnitBridge] fix leftover
  [PhpUnitBridge] fix installing under PHP >= 8
  Use ">=" for the "php" requirement
  bump icu 67.1
2020-05-20 19:43:50 +02:00
Nicolas Grekas
b429b15eb5 Merge branch '4.4' into 5.0
* 4.4:
  [PhpUnitBridge] fix leftover
  [PhpUnitBridge] fix installing under PHP >= 8
  Use ">=" for the "php" requirement
  bump icu 67.1
2020-05-20 19:38:26 +02:00
Nicolas Grekas
f8aa0873cf Use ">=" for the "php" requirement 2020-05-20 10:37:50 +02:00
Nicolas Grekas
b1c738341f Merge branch '5.1'
* 5.1:
  [PhpUnitBridge] fix bad detection of unsilenced deprecations
  [Security] Unserialize $parentData, if needed, to avoid errors
  [HttpKernel] Fix error logger when stderr is redirected to /dev/null (FPM)
2020-05-19 10:31:40 +02:00
Nicolas Grekas
b92399136e Merge branch '5.0' into 5.1
* 5.0:
  [PhpUnitBridge] fix bad detection of unsilenced deprecations
  [Security] Unserialize $parentData, if needed, to avoid errors
  [HttpKernel] Fix error logger when stderr is redirected to /dev/null (FPM)
2020-05-19 10:31:21 +02:00
Nicolas Grekas
31ffd761c3 Merge branch '4.4' into 5.0
* 4.4:
  [PhpUnitBridge] fix bad detection of unsilenced deprecations
  [Security] Unserialize $parentData, if needed, to avoid errors
  [HttpKernel] Fix error logger when stderr is redirected to /dev/null (FPM)
2020-05-19 10:31:00 +02:00
rfaivre
b447433b67 [Security] Unserialize $parentData, if needed, to avoid errors 2020-05-18 23:38:28 +02:00
Fabien Potencier
25c4889c8e updated version to 5.2 2020-05-16 14:09:30 +02:00
Wouter de Jong
c49d00f984 Added deprecation for RememberMe services without logout() method 2020-05-16 13:05:23 +02:00
Nicolas Grekas
5dd99f2062 bug #36806 RememberMeLogoutListener should depend on LogoutHandlerInterface (scheb)
This PR was merged into the 5.1-dev branch.

Discussion
----------

RememberMeLogoutListener should depend on LogoutHandlerInterface

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

`RememberMeLogoutListener`, which was introduced together with the new authenticator security in Symfony 5.1,  depends on `AbstractRememberMeServices`. This forces people to always extend from `AbstractRememberMeServices`, even when they're implementing the correct interface.

I'd suggest to depend on the minimum interface, which is `LogoutHandlerInterface`, instead.

Example of the type errors you'd get otherwise:
`
Argument 1 passed to Symfony\Component\Security\Http\EventListener\RememberMeLogoutListener::__construct() must be an instance of Symfony\Component\Security\Http\RememberMe\AbstractRememberMeServices, instance of Scheb\TwoFactorBundle\Security\Authentication\RememberMe\RememberMeServicesDecorator given, called in var/cache/dev/Container3IpOCEd/getSecurity_Logout_Listener_RememberMe_MainService.php on line 22
`

with

```php
class RememberMeServicesDecorator implements RememberMeServicesInterface, LogoutHandlerInterface
[...]
```

Commits
-------

994700fbae Depend on LogoutHandlerInterface
2020-05-16 11:30:21 +02:00
Nicolas Grekas
a86058c2fb bug #36805 [Security\Core] Fix NoopAuthenticationManager::authenticate() return value (chalasr)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Security\Core] Fix NoopAuthenticationManager::authenticate() return value

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #36804
| License       | MIT
| Doc PR        | -

Commits
-------

b05da72a3c [Security\Core] Fix NoopAuthenticationManager::authenticate() return value
2020-05-16 11:27:10 +02:00
Robin Chalas
b05da72a3c [Security\Core] Fix NoopAuthenticationManager::authenticate() return value 2020-05-16 11:27:00 +02:00
Nicolas Grekas
be93a222e4 Merge branch '5.0'
* 5.0:
  [VarDumper] fix for change in PHP 7.4.6
  Added regression test for AccountStatusException behavior (ref #36822)
  [HttpClient] fix PHP warning + accept status code >= 600
  [Security/Core] fix compat of `NativePasswordEncoder` with pre-PHP74 values of `PASSWORD_*` consts
  embed resource name in error message
  [FrameworkBundle] fix stringable annotation
  Change priority of KernelEvents::RESPONSE subscriber
  Fix register event listeners compiler pass
  Missing description in `messenger:setup-transports` command
  [Serializer] fix issue with PHP 8
  [WebProfiler] Remove 'none' when appending CSP tokens
  [TwigBundle] FormExtension does not have a constructor anymore since sf 4.0
  [Yaml] Fix escaped quotes in quoted multi-line string
2020-05-16 11:12:54 +02:00
Nicolas Grekas
241542e543 Merge branch '4.4' into 5.0
* 4.4:
  [VarDumper] fix for change in PHP 7.4.6
  Added regression test for AccountStatusException behavior (ref #36822)
  [HttpClient] fix PHP warning + accept status code >= 600
  [Security/Core] fix compat of `NativePasswordEncoder` with pre-PHP74 values of `PASSWORD_*` consts
  embed resource name in error message
  [FrameworkBundle] fix stringable annotation
  Change priority of KernelEvents::RESPONSE subscriber
  Fix register event listeners compiler pass
  Missing description in `messenger:setup-transports` command
  [Serializer] fix issue with PHP 8
  [WebProfiler] Remove 'none' when appending CSP tokens
  [TwigBundle] FormExtension does not have a constructor anymore since sf 4.0
  [Yaml] Fix escaped quotes in quoted multi-line string
2020-05-16 11:10:03 +02:00
Nicolas Grekas
bce37603cb bug #36824 [Security/Core] fix compat of NativePasswordEncoder with pre-PHP74 values of PASSWORD_* consts (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security/Core] fix compat of `NativePasswordEncoder` with pre-PHP74 values of `PASSWORD_*` consts

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #36451
| License       | MIT
| Doc PR        | -

Commits
-------

df32171cb2 [Security/Core] fix compat of `NativePasswordEncoder` with pre-PHP74 values of `PASSWORD_*` consts
2020-05-16 11:07:52 +02:00
Nicolas Grekas
fb4c3f920f Merge branch '3.4' into 4.4
* 3.4:
  [VarDumper] fix for change in PHP 7.4.6
  Added regression test for AccountStatusException behavior (ref #36822)
  embed resource name in error message
  [Serializer] fix issue with PHP 8
  [Yaml] Fix escaped quotes in quoted multi-line string
2020-05-16 11:03:35 +02:00
Wouter J
08fbfcf5a0 Added regression test for AccountStatusException behavior (ref #36822) 2020-05-15 23:22:25 +02:00
Nicolas Grekas
df32171cb2 [Security/Core] fix compat of NativePasswordEncoder with pre-PHP74 values of PASSWORD_* consts 2020-05-15 14:38:59 +02:00
Christian Scheb
994700fbae Depend on LogoutHandlerInterface 2020-05-13 15:07:15 +02:00
Stefan Kruppa
b009254090 [Security] Improve method signatures (minor) 2020-05-09 13:45:48 +02:00
Nicolas Grekas
fb90fb3bb7 minor #36758 [5.1] CS fixes (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[5.1] CS fixes

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

bb164e6615 [5.1] CS fixes
2020-05-08 14:37:13 +02:00
Nicolas Grekas
f8616f8eae Merge branch '5.0'
* 5.0:
  [PhpUnitBridge] fix bad test
  [4.4] CS fixes
  [3.4] CS fixes
  Disable phpunit verbosity
  Queue name is a required parameter
  [FrameworkBundle] display actual target for error in AssetsInstallCommand
  Remove patches for Doctrine bugs and deprecations
  [Mime] fix bad method call on "EmailAddressContains"
  [DI][EventDispatcher] added contract for implementation
2020-05-08 14:36:29 +02:00
Nicolas Grekas
0b34b39cc8 Merge branch '4.4' into 5.0
* 4.4:
  [PhpUnitBridge] fix bad test
  [4.4] CS fixes
  [3.4] CS fixes
  Disable phpunit verbosity
  Queue name is a required parameter
  [FrameworkBundle] display actual target for error in AssetsInstallCommand
  Remove patches for Doctrine bugs and deprecations
  [Mime] fix bad method call on "EmailAddressContains"
  [DI][EventDispatcher] added contract for implementation
2020-05-08 14:34:39 +02:00
Nicolas Grekas
bb164e6615 [5.1] CS fixes 2020-05-08 12:41:08 +02:00
Nicolas Grekas
eba09d47e7 [4.4] CS fixes 2020-05-08 12:39:41 +02:00
Fabien Potencier
ac1a336040 Fix typo 2020-05-05 07:41:22 +02:00
Fabien Potencier
a0c2dd8a87 feature #36656 [Security/Core] Add CustomUserMessageAccountStatusException (VincentLanglet)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Security/Core] Add CustomUserMessageAccountStatusException

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | Not really needed

When implementing the `UserCheckerInterface`, we can throw `AccountStatusException`. Similar to `CustomUserMessageAuthenticationException`, this exception allow to throw an `AccountStatusException` with a custom message.

Commits
-------

9233efbe06 Add CustomUserMessageAccountStatusException
2020-05-05 07:40:46 +02:00
Nicolas Grekas
169e49d491 Fix exception messages containing exception messages 2020-05-04 17:12:51 +02:00
Wouter de Jong
ac84a6c5d9 Removed AnonymousToken from the authenticator system
* Anonymous users are actual to unauthenticated users, both are now represented by no token
* Added a PUBLIC_ACCESS Security attribute to be used in access_control
* Deprecated "anonymous: lazy" in favor of "lazy: true"
2020-05-03 08:43:40 +02:00
Wouter de Jong
5ba4d1de86 Renamed VerifyAuthenticatorCredentialsEvent to CheckPassportEvent 2020-05-02 20:51:30 +02:00
Vincent Langlet
9233efbe06 Add CustomUserMessageAccountStatusException 2020-05-01 19:29:52 +02:00
Wouter de Jong
8708a6c37d Integrated Guards with the Authenticator system 2020-04-24 19:07:56 +02:00
Nicolas Grekas
670e601d19 Merge branch '5.0'
* 5.0:
  fix merge
2020-04-21 23:19:50 +02:00
Nicolas Grekas
ebc90fb0c5 Merge branch '4.4' into 5.0
* 4.4:
  fix merge
2020-04-21 23:19:41 +02:00
Nicolas Grekas
15d2b77632 fix merge 2020-04-21 23:19:23 +02:00
Nicolas Grekas
7ce2f2401a Merge branch '5.0'
* 5.0:
  [FrameworkBundle] Fix session.attribute_bag service definition
  [Routing] Remove unused properties from the Route annotation
  [Routing] Add missing _locale requirements
  Update LdapBindAuthenticationProvider.php
  Add reproducer to for hit after update expire cacheItem
  [Cache] fix FilesystemTagAwareAdapter failing when a tag link preexists
2020-04-21 23:06:40 +02:00
Nicolas Grekas
4042cc49d1 Merge branch '4.4' into 5.0
* 4.4:
  [FrameworkBundle] Fix session.attribute_bag service definition
  [Routing] Remove unused properties from the Route annotation
  [Routing] Add missing _locale requirements
  Update LdapBindAuthenticationProvider.php
  Add reproducer to for hit after update expire cacheItem
  [Cache] fix FilesystemTagAwareAdapter failing when a tag link preexists
2020-04-21 23:02:50 +02:00
Nicolas Grekas
0ed6cfd412 Merge branch '3.4' into 4.4
* 3.4:
  [FrameworkBundle] Fix session.attribute_bag service definition
  Update LdapBindAuthenticationProvider.php
2020-04-21 23:01:55 +02:00
Robin Chalas
f8b86df6af fix tests 2020-04-21 22:24:20 +02:00
Wouter de Jong
be3a9a93f0 Applied left-over review comments from #33558 2020-04-21 22:14:49 +02:00
Sebastiaan Stok
5cb633c0dd
Update CsrfTokenBadge.php 2020-04-21 17:08:27 +02:00
Wouter de Jong
b1e040f311 Rename providerKey to firewallName for more consistent naming 2020-04-20 14:20:56 +02:00
Wouter de Jong
50224aa285 Introduce Passport & Badges to extend authenticators 2020-04-20 14:20:56 +02:00
Wouter de Jong
9ea32c4ed3 Also use authentication failure/success handlers in FormLoginAuthenticator 2020-04-20 14:20:56 +02:00
Wouter de Jong
0fe5083a3e Added JSON login authenticator 2020-04-20 14:20:56 +02:00
Wouter de Jong
7ef6a7ab03 Use the firewall event dispatcher 2020-04-20 14:20:56 +02:00
Wouter de Jong
95edc806a1 Added pre-authenticated authenticators (X.509 & REMOTE_USER) 2020-04-20 14:20:56 +02:00
Wouter de Jong
f5e11e5f32 Reverted changes to the Guard component 2020-04-20 14:20:56 +02:00
Wouter de Jong
ba3754a80f Differentiate between interactive and non-interactive authenticators 2020-04-20 14:20:56 +02:00
Wouter de Jong
6b9d78d5e0 Added tests 2020-04-20 14:20:56 +02:00
Wouter de Jong
59f49b20ca Rename AuthenticatingListener 2020-04-20 14:20:56 +02:00
Wouter de Jong
60d396f2d1 Added automatically CSRF protected authenticators 2020-04-20 14:20:56 +02:00
Wouter de Jong
bf1a452e94 Merge AuthenticatorManager and AuthenticatorHandler
The AuthenticatorManager now performs the whole authentication process. This
allows for manual authentication without duplicating or publicly exposing parts
of the process.
2020-04-20 14:20:56 +02:00
Wouter de Jong
44cc76fec2 Use one AuthenticatorManager per firewall 2020-04-20 14:20:56 +02:00
Wouter de Jong
ddf430fc1e Added remember me functionality 2020-04-20 14:20:56 +02:00
Wouter de Jong
1c810d5d2a Added support for lazy firewalls 2020-04-20 14:20:56 +02:00
Wouter de Jong
7859977324 Removed all mentions of 'guard' in the new system
This to remove confusion between the new system and Guard. When using the new
system, guard should not be installed. Guard did however influence the idea
behind the new system. Thus keeping the mentions of "guard" makes it confusing
to use the new system.
2020-04-20 14:20:56 +02:00
Wouter de Jong
999ec2795f Refactor to an event based authentication approach
This allows more flexibility for the authentication manager (to e.g. implement
login throttling, easier remember me, etc). It is also a known design pattern
in Symfony HttpKernel.
2020-04-20 14:20:56 +02:00
Wouter de Jong
b14a5e8c52 Moved new authenticator to the HTTP namespace
This removes the introduced dependency on Guard from core. It also allows an
easier migration path, as the complete Guard subcomponent can now be deprecated
later in the 5.x life.
2020-04-20 14:20:56 +02:00
Wouter de Jong
b923e4c4f6 Enabled remember me for the GuardManagerListener 2020-04-20 14:20:56 +02:00
Wouter de Jong
873b949cf9 Mark new core authenticators as experimental 2020-04-20 14:20:56 +02:00
Wouter de Jong
4c06236933 Fixes after testing in Demo application 2020-04-20 14:20:56 +02:00
Wouter de Jong
fa4b3ec213 Implemented password migration for the new authenticators 2020-04-20 14:20:55 +02:00
Wouter de Jong
5efa892395 Create a new core AuthenticatorInterface
This is an iteration on the AuthenticatorInterface of the Guard, to allow more
flexibility so it can be used as a real replaced of the authentication
providers and listeners.
2020-04-20 14:20:55 +02:00
Wouter de Jong
50132587a1 Add provider key in PreAuthenticationGuardToken
This is required to create the correct authenticated token in the
GuardAuthenticationManager.
2020-04-20 14:20:55 +02:00
Wouter de Jong
526f75608b Added GuardManagerListener
This replaces all individual authentication listeners when guard authentication
manager is enabled.
2020-04-20 14:20:55 +02:00
Wouter de Jong
a172bacaa6 Added FormLogin and Anonymous authenticators 2020-04-20 14:20:55 +02:00
Wouter J
a6890dbcf0 Created HttpBasicAuthenticator and some Guard traits 2020-04-20 14:20:55 +02:00
Wouter J
c321f4d73a Created GuardAuthenticationManager to make Guard first-class Security 2020-04-20 14:20:55 +02:00
stoccc
4bda68a9a2
Update LdapBindAuthenticationProvider.php 2020-04-19 23:34:01 +02:00
Wouter de Jong
94f47630ba Fixed fetching sessionId from InputBag 2020-04-18 20:51:12 +02:00
Nicolas Grekas
6dc7d8b211 Merge branch '5.0'
* 5.0:
  [PhpUnitBridge] add PolyfillTestCaseTrait::expectExceptionMessageMatches to provide FC with recent phpunit versions
  [Messenger] Make sure redis transports are initialized correctly
  Remove return type for Twig function workflow_metadata()
  [DI] fix typo
2020-04-15 18:09:08 +02:00
Nicolas Grekas
4f8f3747d3 Merge branch '4.4' into 5.0
* 4.4:
  [PhpUnitBridge] add PolyfillTestCaseTrait::expectExceptionMessageMatches to provide FC with recent phpunit versions
  [Messenger] Make sure redis transports are initialized correctly
  Remove return type for Twig function workflow_metadata()
  [DI] fix typo
2020-04-15 17:59:10 +02:00
Nicolas Grekas
14a204636d bug #36408 [PhpUnitBridge] add PolyfillTestCaseTrait::expectExceptionMessageMatches to provide FC with recent phpunit versions (soyuka)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[PhpUnitBridge] add PolyfillTestCaseTrait::expectExceptionMessageMatches to provide FC with recent phpunit versions

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | na
| License       | MIT
| Doc PR        | na

expectExceptionMessageRegExp is deprecated coming phpunit 8.5.3  see https://github.com/sebastianbergmann/phpunit/issues/4133

Not sure if I need to add something else lmk.

Commits
-------

cfd5a29eaf [PhpUnitBridge] add PolyfillTestCaseTrait::expectExceptionMessageMatches to provide FC with recent phpunit versions
2020-04-15 17:56:18 +02:00
soyuka
cfd5a29eaf [PhpUnitBridge] add PolyfillTestCaseTrait::expectExceptionMessageMatches to provide FC with recent phpunit versions 2020-04-15 17:55:41 +02:00
Fabien Potencier
b2f210f1f3 feature #34363 [HttpFoundation] Add InputBag (azjezz)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpFoundation] Add InputBag

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| License       | MIT

When ppl read a request attribute, they never check if an array is returned
This means many apps just fail with a 500 when adding `[]` in the query string.
This PR turns them to 400 basically (with a deprecation for now)

Commits
-------

0a2ef70c04 [HttpFoundation] add InputBag
2020-04-13 22:42:08 +02:00
azjezz
0a2ef70c04 [HttpFoundation] add InputBag 2020-04-13 21:20:37 +01:00
Fabien Potencier
253e018ea5 Merge branch '5.0'
* 5.0:
  Tweak the code to avoid fabbot false positives
  Remove UPGRADE files for 4.x
2020-04-12 16:42:09 +02:00
Fabien Potencier
9e254aea75 Merge branch '4.4' into 5.0
* 4.4:
  Tweak the code to avoid fabbot false positives
2020-04-12 16:40:17 +02:00
Fabien Potencier
11a707200d Merge branch '3.4' into 4.4
* 3.4:
  Tweak the code to avoid fabbot false positives
2020-04-12 16:39:55 +02:00
Fabien Potencier
ad6f75e5c8 Tweak the code to avoid fabbot false positives 2020-04-12 16:33:46 +02:00
Nicolas Grekas
bfe6b6fb41 Merge branch '5.0'
* 5.0:
  [PropertyAccess] fix tests
  [WebProfilerBundle] fix test
  remove assertions that can never be reached
  [PropertyAccess] Improve message of unitialized property in php 7.4
  [HttpFoundation] Fixed session migration with custom cookie lifetime
  [HttpKernel][FrameworkBundle] fix compat with Debug component
  [Serializer] Remove unused variable
  Allow URL-encoded special characters in basic auth part of URLs
  [Serializer] Fix unitialized properties (from PHP 7.4.2) when serializing context for the cache key
  [Validator] Add missing Ukrainian and Russian translations
  Track session usage when setting the token
  [4.4][MonologBridge] Fix $level type
  [5.0][MonologBridge] Fix $level type
  No need to reconnect the bags to the session
  Support for Content Security Policy style-src-elem and script-src-elem in WebProfiler
  [PropertyInfo][ReflectionExtractor] Check the array mutator prefixes last when the property is singular
  [Security][Http][SwitchUserListener] Ignore all non existent username protection errors
  Add installation and minimal example to README
2020-04-06 12:46:53 +02:00
Nicolas Grekas
cc24b55e04 Merge branch '4.4' into 5.0
* 4.4:
  [PropertyAccess] fix tests
  [WebProfilerBundle] fix test
  remove assertions that can never be reached
  [PropertyAccess] Improve message of unitialized property in php 7.4
  [HttpFoundation] Fixed session migration with custom cookie lifetime
  [HttpKernel][FrameworkBundle] fix compat with Debug component
  [Serializer] Remove unused variable
  Allow URL-encoded special characters in basic auth part of URLs
  [Serializer] Fix unitialized properties (from PHP 7.4.2) when serializing context for the cache key
  [Validator] Add missing Ukrainian and Russian translations
  Track session usage when setting the token
  [4.4][MonologBridge] Fix $level type
  No need to reconnect the bags to the session
  Support for Content Security Policy style-src-elem and script-src-elem in WebProfiler
  [PropertyInfo][ReflectionExtractor] Check the array mutator prefixes last when the property is singular
  [Security][Http][SwitchUserListener] Ignore all non existent username protection errors
  Add installation and minimal example to README
2020-04-06 12:40:56 +02:00
Robin Chalas
a165ecca73 fix cs 2020-04-05 01:14:36 +02:00
Wouter de Jong
253cc4ec41 Fixed build after LogoutListener changes 2020-04-04 20:35:10 +02:00
Fabien Potencier
1fc7b86f07 feature #36243 [Security] Refactor logout listener to dispatch an event instead (wouterj)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[Security] Refactor logout listener to dispatch an event instead

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes (sort of...)
| New feature?  | yes
| Deprecations? | yes
| Tickets       | Fix #25212, Fix #22473
| License       | MIT
| Doc PR        | tbd

The current `LogoutListener` has some extension points, but they are not really DX-friendly (ref #25212). It requires hacking a `addMethodCall('addHandler')` in the container builder to register a custom logout handler.
Also, it is impossible to overwrite the default logout functionality from a bundle (ref #22473).

This PR introduces a `LogoutEvent` that replaces both the `LogoutSuccessHandlerInterface` and `LogoutHandlerInterface`. This provides a DX-friendly extension point and also cleans up the authentication factories (no more `addMethodCall()`'s).

In order to allow different logout handlers for different firewalls, I created a specific event dispatcher for each firewall (as also shortly discussed in #33558). The `dispatcher` tag attribute allows you to specify which dispatcher it should be registered to (defaulting to the global dispatcher). The `EventBubblingLogoutListener` also dispatches logout events on the global dispatcher, to be used for listeners that should run on all firewalls.

_@weaverryan and I discussed this feature while working on #33558, but figured it was unrelated and could be done while preservering BC. So that's why a separate PR is created._

Commits
-------

a9f096eb1f [Security] Refactor logout listener to dispatch an event instead
2020-04-04 13:02:32 +02:00
Wouter de Jong
a9f096eb1f [Security] Refactor logout listener to dispatch an event instead 2020-04-04 13:02:21 +02:00
Wouter de Jong
8d96dbd08b Track session usage when setting the token 2020-04-03 19:46:33 +02:00
Thomas Calvet
42311d5c29 [Security][Http][SwitchUserListener] Ignore all non existent username protection errors 2020-04-01 11:15:47 +02:00
Fabien Potencier
9a4a96910d Merge branch '5.0'
* 5.0:
  Fix wrong namespaces
  Fix wrong namespaces
  Fix the reporting of deprecations in twig:lint
  forward multiple attributes voting flag
  bumped Symfony version to 5.0.8
  updated VERSION for 5.0.7
  updated CHANGELOG for 5.0.7
  bumped Symfony version to 4.4.8
  updated VERSION for 4.4.7
  updated CHANGELOG for 4.4.7
  [Validator] Fixed calling getters before resolving groups
  [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing
2020-04-01 08:33:39 +02:00
Fabien Potencier
e1a522b470 Merge branch '4.4' into 5.0
* 4.4:
  Fix wrong namespaces
  Fix wrong namespaces
  Fix the reporting of deprecations in twig:lint
  forward multiple attributes voting flag
  bumped Symfony version to 4.4.8
  updated VERSION for 4.4.7
  updated CHANGELOG for 4.4.7
  [Validator] Fixed calling getters before resolving groups
  [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing
2020-04-01 08:31:30 +02:00
Nicolas Grekas
2130465899 feature #36129 [HttpFoundation][HttpKernel][Security] Improve UnexpectedSessionUsageException backtrace (mtarld)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpFoundation][HttpKernel][Security] Improve UnexpectedSessionUsageException backtrace

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       |
| License       | MIT
| Doc PR        |

Improve `UnexceptedSessionUsageException` backtrace so that it leads to the place in the userland  where it was told to use session.

Commits
-------

1e1d332c7c Improve UnexcpectedSessionUsageException backtrace
2020-03-31 21:27:28 +02:00
Christian Flothmann
1b7ec67b73 forward multiple attributes voting flag 2020-03-31 19:42:12 +02:00
Nicolas Grekas
3987914982 Merge branch '5.0'
* 5.0:
  [HttpFoundation] Do not set the default Content-Type based on the Accept header
  [Security] Fix access_control behavior with unanimous decision strategy
2020-03-30 16:22:57 +02:00
Nicolas Grekas
a92ffff16c Merge branch '4.4' into 5.0
* 4.4:
  [HttpFoundation] Do not set the default Content-Type based on the Accept header
  [Security] Fix access_control behavior with unanimous decision strategy
2020-03-30 16:14:32 +02:00
Robin Chalas
0f6a99936b [Security] Fix access_control behavior with unanimous decision strategy 2020-03-30 13:51:53 +02:00
Nicolas Grekas
8ea7c26326 Merge branch '5.0'
* 5.0: (27 commits)
  Fix versions
  [Security/Http] Allow setting cookie security settings for delete_cookies
  [DI] fix generating TypedReference from PriorityTaggedServiceTrait
  [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected
  bumped Symfony version to 3.4.40
  updated VERSION for 3.4.39
  update CONTRIBUTORS for 3.4.39
  updated CHANGELOG for 3.4.39
  [DomCrawler] Fix BC break in assertions breaking Panther
  [BrowserKit] fixed missing post request parameters in file uploads
  update Italian translation
  [Validator] Add missing Hungarian translations
  [Validator] Add the missing translations for the Arabic (ar) locale
  [Validator] Add missing vietnamese translations
  [Console] Fix OutputStream for PHP 7.4
  add missing gitattributes for phpunit-bridge
  add German translations
  Bump Symfony version to 5.0.7
  Update VERSION for 5.0.6
  Update CHANGELOG for 5.0.6
  ...
2020-03-30 13:43:41 +02:00
Nicolas Grekas
6b0ad43856 Merge branch '4.4' into 5.0
* 4.4:
  Fix versions
  [Security/Http] Allow setting cookie security settings for delete_cookies
  [DI] fix generating TypedReference from PriorityTaggedServiceTrait
  [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected
  bumped Symfony version to 3.4.40
  updated VERSION for 3.4.39
  update CONTRIBUTORS for 3.4.39
  updated CHANGELOG for 3.4.39
  [DomCrawler] Fix BC break in assertions breaking Panther
  [BrowserKit] fixed missing post request parameters in file uploads
  update Italian translation
  [Validator] Add missing Hungarian translations
  [Validator] Add the missing translations for the Arabic (ar) locale
  [Validator] Add missing vietnamese translations
  [Console] Fix OutputStream for PHP 7.4
  add German translations
  bug #36157 [Validator] Assert Valid with many groups
  [Validator] Add missing Lithuanian translations
  Fixed some typos
  Add french "at least" constraint translations
2020-03-30 13:42:42 +02:00
Nicolas Grekas
78c0bcb302 Merge branch '3.4' into 4.4
* 3.4:
  Fix versions
  [Security/Http] Allow setting cookie security settings for delete_cookies
  [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected
  bumped Symfony version to 3.4.40
  updated VERSION for 3.4.39
  update CONTRIBUTORS for 3.4.39
  updated CHANGELOG for 3.4.39
  update Italian translation
  [Validator] Add missing Hungarian translations
  [Validator] Add the missing translations for the Arabic (ar) locale
  [Validator] Add missing vietnamese translations
  [Console] Fix OutputStream for PHP 7.4
  add German translations
  bug #36157 [Validator] Assert Valid with many groups
  [Validator] Add missing Lithuanian translations
  Fixed some typos
  Add french "at least" constraint translations
2020-03-30 13:41:10 +02:00
Fabien Potencier
e1c48f3449 Fix versions 2020-03-30 13:26:49 +02:00
Wouter de Jong
a696d1f3af [Security/Http] Allow setting cookie security settings for delete_cookies 2020-03-30 12:37:52 +02:00
Fabien Potencier
f5ff33c935 Merge branch '4.4' into 5.0
* 4.4:
  add missing gitattributes for phpunit-bridge
  Bump Symfony version to 4.4.7
  Update VERSION for 4.4.6
  Update CHANGELOG for 4.4.6
2020-03-27 17:56:45 +01:00
Tobias Schultze
d4c052a2fa add missing gitattributes for phpunit-bridge 2020-03-27 17:54:36 +01:00
Javier Eguiluz
4befb23c76 Fixed some typos 2020-03-25 13:02:26 +01:00
Mathias Arlaud
1e1d332c7c Improve UnexcpectedSessionUsageException backtrace 2020-03-24 18:16:22 +01:00
Nicolas Grekas
8ace1c1f94 Merge branch '5.0'
* 5.0:
  [Http Foundation] Fix clear cookie samesite
  [Security] Check if firewall is stateless before checking for session/previous session
  [Form] Support customized intl php.ini settings
  [Security] Remember me: allow to set the samesite cookie flag
  [Debug] fix for PHP 7.3.16+/7.4.4+
  [Validator] Backport translations
  [Mailer] Use %d instead of %s for error code in error messages
  [HttpKernel] fix locking for PHP 7.4+
  [Security] Fixed hardcoded value of SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  Prevent warning in proc_open()
  [FrameworkBundle] Fix Router Cache
  Fix deprecation messages
2020-03-23 13:45:08 +01:00
Nicolas Grekas
efb5c4907f Merge branch '4.4' into 5.0
* 4.4:
  [Http Foundation] Fix clear cookie samesite
  [Security] Check if firewall is stateless before checking for session/previous session
  [Form] Support customized intl php.ini settings
  [Security] Remember me: allow to set the samesite cookie flag
  [Debug] fix for PHP 7.3.16+/7.4.4+
  [Validator] Backport translations
  [Mailer] Use %d instead of %s for error code in error messages
  [HttpKernel] fix locking for PHP 7.4+
  [Security] Fixed hardcoded value of SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  Prevent warning in proc_open()
  [FrameworkBundle] Fix Router Cache
  Fix deprecation messages
2020-03-23 13:42:46 +01:00
Nicolas Grekas
099481f237 Merge branch '3.4' into 4.4
* 3.4:
  [Http Foundation] Fix clear cookie samesite
  [Security] Check if firewall is stateless before checking for session/previous session
  [Form] Support customized intl php.ini settings
  [Security] Remember me: allow to set the samesite cookie flag
  [Debug] fix for PHP 7.3.16+/7.4.4+
  [Validator] Backport translations
  Prevent warning in proc_open()
2020-03-23 13:37:11 +01:00
Nicolas Grekas
438d9e5f28 bug #36175 [Security/Http] Remember me: allow to set the samesite cookie flag (dunglas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security/Http] Remember me: allow to set the samesite cookie flag

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Similar to #35605, since Chrome 80 is going to require the `samesite` attribute.

This is a cherry-pick of #27976

Commits
-------

f0ceb73397 [Security] Remember me: allow to set the samesite cookie flag
2020-03-23 13:17:13 +01:00
Koen Reiniers
9bb1230525 [Security] Check if firewall is stateless before checking for session/previous session 2020-03-23 13:10:23 +01:00
Kévin Dunglas
f0ceb73397 [Security] Remember me: allow to set the samesite cookie flag 2020-03-23 12:51:42 +01:00
Grégoire Pineau
677429479d [Security] Fixed hardcoded value of SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE 2020-03-20 16:02:37 +01:00
Fabien Potencier
efb4a7f0bc minor #36105 [FrameworkBundle] Fix deprecation message for booting a kernel twice (jschaedl)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] Fix deprecation message for booting a kernel twice

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | - <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | - <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Never break backward compatibility (see https://symfony.com/bc).
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too.)
 - Features and deprecations must be submitted against branch master.
-->

Commits
-------

a0a6243a21 Fix deprecation messages
2020-03-18 09:09:03 +01:00
Nicolas Grekas
4dd6e2f0b2 Merge branch '5.0'
* 5.0:
  [DI] Fix CheckTypeDeclarationPass
  [Security/Http] don't require the session to be started when tracking its id
  [DI] fix preloading script generation
2020-03-18 09:01:26 +01:00
Nicolas Grekas
ea0eb11bcf Merge branch '4.4' into 5.0
* 4.4:
  [DI] Fix CheckTypeDeclarationPass
  [Security/Http] don't require the session to be started when tracking its id
  [DI] fix preloading script generation
2020-03-18 09:00:37 +01:00
Fabien Potencier
e457b24ea7 bug #36103 [DI] fix preloading script generation (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix preloading script generation

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

(fabbot failure is a false positive)

On master, we should work on being able to preload more classes (esp. all cache-warmup artifacts).

But for 4.4, this is good enough. Submitted as a bug fix because 1. the current code that deals with preloading kinda-works, but only on "dev" mode... and 2. fixing it provides a nice boost!

Small bench on a hello world:
- before: 380 req/s
- after: 580 req/s

That's +50%!

Pro-tip: adding a few `class_exists()` as done in this PR for the classes that are always used in the implementations (e.g. `new Foo()` in the constructor) will help the preload-script generator to work optimally. Without them, it will discover the symbols to preload only if they're found on methods.

Some of those `class_exists()` are mandatory, in relation to anonymous classes and https://bugs.php.net/79349

Commits
-------

a10fc4da5d [DI] fix preloading script generation
2020-03-18 08:51:32 +01:00
Nicolas Grekas
c39188a7cc [Security/Http] don't require the session to be started when tracking its id 2020-03-17 22:55:56 +01:00
Nicolas Grekas
3f23a45207 Merge branch '5.0'
* 5.0:
  fix merge
  Fix more quotes in exception messages
  Fix more quotes in exception messages
  Fix more quotes in exception messages
  [3.4] Minor fixes
  [PropertyAccess] Improved errors when reading uninitialized properties
2020-03-17 21:06:25 +01:00
Nicolas Grekas
a10fc4da5d [DI] fix preloading script generation 2020-03-17 20:51:46 +01:00
Jan Schädlich
a0a6243a21 Fix deprecation messages 2020-03-17 20:48:51 +01:00
Fabien Potencier
955752b74c Fix more quotes in exception messages 2020-03-16 17:47:01 +01:00
Nicolas Grekas
daf1c6605e Leverage PHP8's get_debug_type() 2020-03-16 17:46:21 +01:00
Fabien Potencier
e7e5f334e7 Merge branch '4.4' into 5.0
* 4.4:
  Fix more quotes in exception messages
  Fix more quotes in exception messages
  [3.4] Minor fixes
  [PropertyAccess] Improved errors when reading uninitialized properties
2020-03-16 17:38:48 +01:00
Fabien Potencier
cbe50a79a8 Merge branch '3.4' into 4.4
* 3.4:
  Fix more quotes in exception messages
  [3.4] Minor fixes
  [PropertyAccess] Improved errors when reading uninitialized properties
2020-03-16 17:04:53 +01:00
Fabien Potencier
4ab6156c5a Fix more quotes in exception messages 2020-03-16 16:51:59 +01:00
Fabien Potencier
1866a2a88c Merge branch '5.0'
* 5.0:
  Fix quotes in exception messages
  Fix quotes in exception messages
  Fix quotes in exception messages
  Fix quotes in exception messages
  Fix quotes in exception messages
2020-03-16 14:12:54 +01:00
Fabien Potencier
e903750b9c Merge branch '4.4' into 5.0
* 4.4:
  Fix quotes in exception messages
  Fix quotes in exception messages
  Fix quotes in exception messages
2020-03-16 13:10:54 +01:00
Fabien Potencier
aab0e40cd2 Fix quotes in exception messages 2020-03-16 12:24:17 +01:00
Thomas Calvet
019350022c [3.4] Minor fixes 2020-03-16 11:48:37 +01:00
Fabien Potencier
1ae2da01ff Fix quotes in exception messages 2020-03-16 10:45:04 +01:00
Fabien Potencier
09ee51aa4d Merge branch '3.4' into 4.4
* 3.4:
  Fix quotes in exception messages
2020-03-16 09:56:54 +01:00
Fabien Potencier
48102d96f3 Fix quotes in exception messages 2020-03-16 09:31:04 +01:00
Fabien Potencier
1897e03d7f feature #36034 [PhpUnitBridge] Deprecate @expectedDeprecation annotation (hkdobrev)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[PhpUnitBridge] Deprecate @expectedDeprecation annotation

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | yes<!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

Addresses https://github.com/orgs/symfony/projects/1#card-32934769 as a follow-up to #35192.

Deprecating `@expectedDeprecation` annotation on tests in favour of the `expectDeprecation()` method similar to other PHPUnit deprecations of annotations in favour of methods.

Commits
-------

36a57cc7c2 [PhpUnitBridge] Deprecate @expectedDeprecation annotation
2020-03-16 07:05:20 +01:00
Haralan Dobrev
36a57cc7c2 [PhpUnitBridge] Deprecate @expectedDeprecation annotation 2020-03-16 07:05:14 +01:00
Fabien Potencier
d6dd06ba89 Merge branch '5.0'
* 5.0:
  Add missing dots at the end of exception messages
  Add missing dots at the end of exception messages
  [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict)
  Fix bad merge
  Add missing dots at the end of exception messages
2020-03-15 15:51:35 +01:00
Fabien Potencier
20a19884ac Merge branch '4.4' into 5.0
* 4.4:
  Add missing dots at the end of exception messages
  [DI][Form] Fixed test suite (TimeType changes & unresolved merge conflict)
  Fix bad merge
  Add missing dots at the end of exception messages
2020-03-15 15:33:06 +01:00
Fabien Potencier
14f2d22158 Merge branch '3.4' into 4.4
* 3.4:
  Add missing dots at the end of exception messages
2020-03-15 11:05:03 +01:00
Fabien Potencier
bb8a66e3fc Add missing dots at the end of exception messages 2020-03-15 10:38:08 +01:00
Nicolas Grekas
5428fef8cb Merge branch '5.0'
* 5.0:
  [Security/Core] fix merge
  fix typo
  [Validator] clarify stringable type annotations
  [Security/Core] fix some annotations
2020-03-13 11:40:02 +01:00
Nicolas Grekas
2f9438677c Merge branch '4.4' into 5.0
* 4.4:
  [Security/Core] fix merge
  fix typo
  [Validator] clarify stringable type annotations
  [Security/Core] fix some annotations
2020-03-13 11:39:51 +01:00
Nicolas Grekas
228b59da56 [Security/Core] fix merge 2020-03-13 11:38:56 +01:00
Nicolas Grekas
162758317c Merge branch '3.4' into 4.4
* 3.4:
  fix typo
  [Validator] clarify stringable type annotations
  [Security/Core] fix some annotations
2020-03-13 11:34:17 +01:00
Nicolas Grekas
523f5c04ab fix typo 2020-03-13 11:30:33 +01:00
Nicolas Grekas
8e873d0b5b [Security/Core] fix some annotations 2020-03-13 11:19:21 +01:00
Nicolas Grekas
1b5430bc9f Merge branch '5.0'
* 5.0: (36 commits)
  Add test for tagged iterator with numeric index
  Fix container lint command when a synthetic service is used in combination with the expression language
  Fix Travis script
  [Validator][Range] Fix typos
  [SecurityBundle] Minor fix in LDAP config tree builder
  [HttpClient] fix requests to hosts that idn_to_ascii() cannot handle
  Revert "minor #35559 [FrameworkBundle] remove mention of the old Controller class (nicolas-grekas)"
  [FrameworkBundle] remove redundant PHPDoc in console Descriptor and subclass
  [Mime] remove phpdoc mentioning Utf8AddressEncoder
  Add missing phpdoc
  Remove int return type from FlattenException::getCode
  [Yaml] fix dumping strings containing CRs
  [DI] Fix XmlFileLoader bad error message
  [Form] Handle false as empty value on expanded choices
  [Messenger] Add ext-redis min version req to tests
  Tweak message
  improve PlaintextPasswordEncoder docBlock summary
  [Validator] Add two missing translations for the Arabic (ar) locale
  Use some PHP 5.4 constants unconditionally
  Add new packages on the link script
  ...
2020-03-12 18:11:13 +01:00
Nicolas Grekas
ac2c8f2352 Merge branch '4.4' into 5.0
* 4.4: (34 commits)
  Add test for tagged iterator with numeric index
  Fix container lint command when a synthetic service is used in combination with the expression language
  [Validator][Range] Fix typos
  [SecurityBundle] Minor fix in LDAP config tree builder
  [HttpClient] fix requests to hosts that idn_to_ascii() cannot handle
  [FrameworkBundle] remove redundant PHPDoc in console Descriptor and subclass
  [Mime] remove phpdoc mentioning Utf8AddressEncoder
  Add missing phpdoc
  Remove int return type from FlattenException::getCode
  [Yaml] fix dumping strings containing CRs
  [DI] Fix XmlFileLoader bad error message
  [Form] Handle false as empty value on expanded choices
  [Messenger] Add ext-redis min version req to tests
  Tweak message
  improve PlaintextPasswordEncoder docBlock summary
  [Validator] Add two missing translations for the Arabic (ar) locale
  Use some PHP 5.4 constants unconditionally
  Add new packages on the link script
  [DI] fix dumping errored definitions
  [DI] ignore extra tags added by autoconfiguration in PriorityTaggedServiceTrait
  ...
2020-03-12 18:08:07 +01:00
Nicolas Grekas
d0b74453de Merge branch '3.4' into 4.4
* 3.4:
  [Yaml] fix dumping strings containing CRs
  [DI] Fix XmlFileLoader bad error message
  Tweak message
  improve PlaintextPasswordEncoder docBlock summary
  [Validator] Add two missing translations for the Arabic (ar) locale
  Use some PHP 5.4 constants unconditionally
  Revert "bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form"
  Add Spanish translation
  Fix typo
  [Validator] add Japanese translation
  Fix typo
  Add Polish translation
  [SecurityBundle] Minor fixes in configuration tree builder
  bumped Symfony version to 3.4.39
  updated VERSION for 3.4.38
  update CONTRIBUTORS for 3.4.38
  updated CHANGELOG for 3.4.38
2020-03-11 18:49:34 +01:00
Guillaume Pédelagrabe
e2425b9ece [Security/Http] Hash Persistent RememberMe token 2020-03-05 15:13:42 +01:00
Fabien Potencier
622facfe94 Tweak message 2020-03-05 12:34:29 +01:00
Jesse Rushlow
a56d262639 improve PlaintextPasswordEncoder docBlock summary 2020-03-05 12:33:58 +01:00
Robin Chalas
dca77c42ec Merge branch '5.0'
* 5.0:
  [Security] Allow switching to another user when already switched
2020-02-26 11:32:20 +01:00
Robin Chalas
4206b4dc4a Merge branch '4.4' into 5.0
* 4.4:
  [Security] Allow switching to another user when already switched
2020-02-26 11:31:10 +01:00
Robin Chalas
3057c68b93 Merge branch '3.4' into 4.4
* 3.4:
  [Security] Allow switching to another user when already switched
2020-02-26 11:27:30 +01:00
Robin Chalas
0353077083 [Security] Allow switching to another user when already switched 2020-02-26 04:23:24 +01:00
Fabien Potencier
82db995908 feature #35858 [Security] Deprecated ROLE_PREVIOUS_ADMIN (wouterj)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Security] Deprecated ROLE_PREVIOUS_ADMIN

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | n/a
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/11487

`ROLE_PREVIOUS_ADMIN` is added to the token roles if the session is an impersonation. Since https://github.com/symfony/symfony/pull/31189 we have the `IS_IMPERSONATOR` attribute which can be used for the same reason. I propose to deprecate the `ROLE_PREVIOUS_ADMIN`:

* This is not what roles are for ([resulting in hacking this exception in `AbstractToken`](https://github.com/symfony/symfony/blob/5.0/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php#L275-L277))
* The role isn't very descriptive
* I don't like having 2 ways of doing exactly the same thing
* While every application with impersonation enabled probably needs to be updated, the update is as simple as replacing `ROLE_PREVIOUS_ADMIN` with `IS_IMPERSONATOR`: `find ./ -type f -exec sed -i 's/ROLE_PREVIOUS_ADMIN/IS_IMPERSONATOR/g' {} +`

---

I'm a bit unsure on how to deprecate this role, but I think having it in `RoleVoter` is probably the safest (`isGranted()` and variants + `AccessDecisionManager#decide()` all use this voter to check if the token has this role).

Commits
-------

dce55f352a Deprecated ROLE_PREVIOUS_ADMIN
2020-02-25 13:48:58 +01:00
Wouter de Jong
dce55f352a Deprecated ROLE_PREVIOUS_ADMIN 2020-02-25 13:38:33 +01:00
Wouter J
3f0c599289 Use new IS_* attributes in the expression language functions 2020-02-25 12:47:18 +01:00
Fabien Potencier
6178c63148 feature #31189 [Security] Add IS_IMPERSONATOR, IS_ANONYMOUS and IS_REMEMBERED (HeahDude)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Security] Add IS_IMPERSONATOR, IS_ANONYMOUS and IS_REMEMBERED

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/29848
| License       | MIT
| Doc PR        | symfony/symfony-docs#11487

This continues work of @HeahDude and finally finishes one of the code PRs I've been working on during the ️ EUFOSSA Hackathon.

Changes
---

The PRs modifies some of the attributes used by the `AuthenticatedVoter`:

* New `IS_IMPERSONATOR`, `IS_ANONYMOUS` and `IS_REMEMBERED` attributes are introduced to indicate the user either impersonated, anonymous or rembered.
* <s>`IS_AUTHENTICATED_ANONYMOUSLY` actually meant "is authenticated, either anonymous or fully". As this is confusing, it is replaced by `IS_AUTHENTICATED`.</s>
* <s>All `is_*()` functions in expressions are deprecated in favor of `is_granted('IS_*')`. It's not worth duplicating the `AuthenticatedVoter` logic in two places now we have shorter `IS_*` attributes</s>

**Before**

```php
if ($authorizationChecker->isGranted('ROLE_PREVIOUS_ADMIN')) {
    // ...
}
```
<s>

```yaml
security:
  # ...

  access_control:
    - { path: ^/protected, roles: 'IS_AUTHENTICATED_ANONYMOUSLY' }
```
</s>

**After**

```php
if ($authorizationChecker->isGranted('IS_IMPERSONATOR')) {
    // ...
}
```
<s>

```yaml
security:
  # ...

  access_control:
    - { path: ^/protected, roles: 'IS_AUTHENTICATED' }
```
</s>

<s>Discussion
---

The only thing I'm wondering is how we combine this with the `is_authenticated()` expression function:

98929dc292/src/Symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.php (L33-L37)

As you can see, the `IS_AUTHENTICATED` attribute and `is_authenticated()` expression function do not have the same meaning. Should we somehow deprecate the current behavior of `is_authenticated()` or should we find another name for `IS_AUTHENTICATED` (that would be a shame imo).</s>

Commits
-------

6c522a7d98 Added IS_ANONYMOUS, IS_REMEMBERED, IS_IMPERSONATOR
2020-02-24 17:01:02 +01:00
Nicolas Grekas
c231214e59 Merge branch '5.0'
* 5.0: (28 commits)
  [DoctrineBridge] Use new Types::* constants and support new json type
  Fix bad merge in README of Nexmo Notifier bridge
  [Debug][ErrorHandler] improved deprecation notices for methods new args and return type
  [BrowserKit] Nested file array prevents uploading file
  [ExpressionLanguage] Fixed collisions of character operators with object properties
  remove usage of already deleted Symfony\Component\EventDispatcher\Event
  [Notifier] Add correct tags for NullTransportFactory
  [Validator] Remove specific check for Valid targets
  [PhpUnitBridge] Use trait instead of extending deprecated class
  Fix versioned namespace clears
  fix remember me
  Use strict assertion in asset tests
  [DoctrineBridge][DoctrineExtractor] Fix indexBy with custom and some core types
  Do not rely on the current locale when dumping a Graphviz object
  fix typo
  [Ldap] force default network timeout
  [Config] don't throw on missing excluded paths
  Docs: Typo, grammar
  [Validator] Add the missing translations for the Polish ("pl") locale
  [PhpUnitBridge] Add compatibility to PHPUnit 9 #35662
  ...
2020-02-24 16:14:17 +01:00
Nicolas Grekas
08a233bc6d Merge branch '4.4' into 5.0
* 4.4: (25 commits)
  [DoctrineBridge] Use new Types::* constants and support new json type
  [Debug][ErrorHandler] improved deprecation notices for methods new args and return type
  [BrowserKit] Nested file array prevents uploading file
  [ExpressionLanguage] Fixed collisions of character operators with object properties
  [Validator] Remove specific check for Valid targets
  [PhpUnitBridge] Use trait instead of extending deprecated class
  Fix versioned namespace clears
  fix remember me
  Use strict assertion in asset tests
  [DoctrineBridge][DoctrineExtractor] Fix indexBy with custom and some core types
  Do not rely on the current locale when dumping a Graphviz object
  fix typo
  [Ldap] force default network timeout
  [Config] don't throw on missing excluded paths
  Docs: Typo, grammar
  [Validator] Add the missing translations for the Polish ("pl") locale
  [PhpUnitBridge] Add compatibility to PHPUnit 9 #35662
  [Routing] Add locale requirement for localized routes
  [Console] Inline exact-match handling with 4.4
  Set previous exception when rethrown from controller resolver
  ...
2020-02-24 16:05:31 +01:00
Fabien Potencier
a67abe1fb6 Merge branch '3.4' into 4.4
* 3.4:
  [ExpressionLanguage] Fixed collisions of character operators with object properties
  [Validator] Remove specific check for Valid targets
  [PhpUnitBridge] Use trait instead of extending deprecated class
  fix remember me
  Use strict assertion in asset tests
  [DoctrineBridge][DoctrineExtractor] Fix indexBy with custom and some core types
  Do not rely on the current locale when dumping a Graphviz object
  fix typo
  [Ldap] force default network timeout
  [Config] don't throw on missing excluded paths
  Docs: Typo, grammar
  [Validator] Add the missing translations for the Polish ("pl") locale
  [Console] Inline exact-match handling with 4.4
  Set previous exception when rethrown from controller resolver
  [VarDumper] fixed DateCaster not displaying additional fields
  [HttpKernel] fix registering DebugHandlersListener regardless of the PHP_SAPI
2020-02-24 14:10:00 +01:00
Jules Pietri
6c522a7d98 Added IS_ANONYMOUS, IS_REMEMBERED, IS_IMPERSONATOR 2020-02-22 18:11:06 +01:00
Nicolas PHILIPPE
3515793cb3 fix remember me 2020-02-20 11:24:12 +01:00