This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Fabien Potencier ffd365bb5e feature #39213 [Security] [DX] Automatically add PasswordUpgradeBadge + default support() impl in AbstractFormLoginAuthenticator (wouterj)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[Security] [DX] Automatically add PasswordUpgradeBadge + default support() impl in AbstractFormLoginAuthenticator

| Q             | A
| ------------- | ---
| Branch?       | 5.2 (hopefully? sorry to keep pushing the barrier here)
| Bug fix?      | no
| New feature?  | yes (sort of)
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

These are 2 suggestions we found while implementing `make:auth` for the new system (https://github.com/symfony/maker-bundle/pull/736):

Impact on a custom login form authenticator ([as generated by the new maker](https://github.com/symfony/maker-bundle/pull/736/files#diff-528164b6c24778d5e81fa3819b0552f0e68a9fea33c7d3446a012f3da7d0af60)):

* **Automatically add `PasswordUpgradeBadge`** if there is a user password with valid password credentials.
   ```diff
    // ...
    return new Passport(
        new UserBadge($userIdentifier),
        new PasswordCredentials($password),
        [
   -        new PasswordUpgradeBadge($password),
            new CsrfTokenBadge('authenticate', $csrf),
        ]
    )
   ```
   Note that this does not automatically migrate all passwords: it still relies on `PasswordUpgraderInterface` to be implemented on the user loader/provider.
* **Add default implementation of `AbstractFormLoginAuthenticator::support()`**
   ```diff
   - public function supports(Request $request): ?bool
   -  {
   -      return self::LOGIN_ROUTE === $request->attributes->get('_route')
   -          && $request->isMethod('POST');
   - }
   ```

cc @weaverryan @jrushlow

Commits
-------

27450c0bb4 [Security] [DX] Automatically add PasswordUpgradeBadge + default support() impl in AbstractFormLoginAuthenticator
2020-11-30 06:47:07 +01:00
.github Merge branch '5.1' into 5.2 2020-11-21 10:39:55 +01:00
src/Symfony feature #39213 [Security] [DX] Automatically add PasswordUpgradeBadge + default support() impl in AbstractFormLoginAuthenticator (wouterj) 2020-11-30 06:47:07 +01:00
.appveyor.yml Merge branch '4.4' into 5.1 2020-11-02 16:45:32 +01:00
.editorconfig Update .editorconfig 2018-09-06 16:22:56 +02:00
.gitignore Run the phpunit-bridge from a PR 2019-08-02 17:46:19 +02:00
.php_cs.dist Merge branch '5.1' into 5.x 2020-10-28 22:46:03 +01:00
.travis.yml Merge branch '4.4' into 5.1 2020-11-16 16:58:32 +01:00
CHANGELOG-5.0.md Merge branch '5.0' into 5.1 2020-06-15 13:50:15 +02:00
CHANGELOG-5.1.md Update CHANGELOG for 5.1.9 2020-11-29 10:27:43 +01:00
CHANGELOG-5.2.md Update CHANGELOG for 5.2.0-RC2 2020-11-21 09:45:38 +01:00
CODE_OF_CONDUCT.md Added the Code of Conduct file 2018-10-10 03:13:30 -07:00
composer.json Require doctrine/persistence 2 2020-11-20 09:22:35 +01:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md Update CONTRIBUTORS for 3.4.47 2020-11-27 09:41:54 +01:00
LICENSE Update year in license files 2020-01-01 12:03:25 +01:00
link Merge branch '3.4' into 4.4 2020-08-26 10:30:46 +02:00
phpunit Simplify phpunit script. 2020-10-28 21:38:43 +01:00
phpunit.xml.dist Merge branch '4.4' into 5.1 2020-11-16 16:58:32 +01:00
README.md Minor improvement 2020-07-29 07:57:47 +02:00
UPGRADE-5.0.md Typo: somes styles fixed 2020-08-06 09:00:23 +02:00
UPGRADE-5.1.md Update UPGRADE-5.1.md 2020-09-07 01:58:27 +02:00
UPGRADE-5.2.md [HttpFoundation] Deprecate BinaryFileResponse::create(). 2020-11-20 16:47:02 +01:00
UPGRADE-6.0.md [HttpFoundation] Deprecate BinaryFileResponse::create(). 2020-11-20 16:47:02 +01:00

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.