Commit Graph

32539 Commits

Author SHA1 Message Date
Fabien Potencier
8de664d4f3 feature #40267 [Security] Decouple passwords from UserInterface (chalasr)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Security] Decouple passwords from UserInterface

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       | #23081, helps with #39308
| License       | MIT
| Doc PR        | todo

This PR addresses a long-standing issue of the Security component: UserInterface is coupled to passwords.
It does it by moving the `getPassword()` method from `UserInterface` to a `PasswordAuthenticatedUserInterface`, and the `getSalt()` method to a `LegacyPasswordAuthenticatedUserInterface`.

Steps:
- In 5.3, we add the new interface and, at places where password-based authentication happens, trigger deprecation notices when a `UserInterface` object does not implement the new interface(s). The UserInterface is kept as-is until 6.0.
- In 6.0, we can remove the methods from `UserInterface` as well as support for using password authentication with user objects not implementing the new interface(s).

As a side-effect, some password-related interfaces (`UserPasswordHasherInterface` and `PasswordUpgraderInterface`) must change their signatures to type-hint against the new interface.
That is done in a BC way, which is to make the concerned methods virtual until 6.0, with deprecation notices triggered from callers and concrete implementations.

Benefits:
In 6.0, applications that use password-less authentication (e.g. login links) won't need to write no-op `getPassword()` and `getSalt()` in order to fulfil the `UserInterface` contract.

For applications that do use password-based authentication, they will need to opt-in explicitly by implementing the relevant interface(s).

This build on great discussions with @wouterj and @nicolas-grekas, and it is part of the overall rework of the Security component.

Commits
-------

2764225a38 [Security] Decouple passwords from UserInterface
2021-03-06 11:59:38 +01:00
Fabien Potencier
d752c1ecb5 feature #40377 [Notifier] [OvhCloud] Add "sender" (notFloran)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Notifier] [OvhCloud] Add "sender"

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features --> (I'm waiting to see if the feature is accepted )

Add "sender" option to the DSN that allows configuring the sender of the message.

OVHCloud manages two cases for sending sms according to the [doc](https://docs.ovh.com/fr/sms/envoyer_des_sms_avec_lapi_ovh_en_php/):

> The senderForResponse parameter will allow the use of a short number, which allows you to send SMS directly without having to create an alphanumeric sender (for example: your name).
> Short numbers also allow you to receive responses from the recipients of your SMS, which can be useful for a satisfaction survey, a voting application, a game, etc.

![CleanShot 2021-03-05 at 13 26 33](https://user-images.githubusercontent.com/523981/110115554-84c5af80-7db6-11eb-815d-7e8bafa81e5d.png)

This PR introduces the management of these 2 cases with a new option `sender`:
* if `sender` is set, we use it
* if `sender` is not set, we use `senderForResponse` to get a short number (current behavior)

I took the logic implementedin the old official SDK : 52d279e112/src/Message.php (L161)

Commits
-------

c5a9b252ab [Notifier] [OvhCloud] Add "sender"
2021-03-06 09:31:28 +01:00
Floran Brutel
c5a9b252ab [Notifier] [OvhCloud] Add "sender" 2021-03-06 09:31:27 +01:00
Fabien Potencier
25e8d7dafb feature #40384 [DependencyInjection] Implement psr/container 1.1 (derrabus)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[DependencyInjection] Implement psr/container 1.1

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

The `psr/container` interfaces have been updated with type declarations. The lack of those is what kept us from adding property type declarations to the `get()` and `has()` methods of our own `ContainerInterface`.

A small BC break is that we have never prevented calling code from passing `null` as the service ID. Even without strict types, this will cause a `TypeError` after my changes. I already had to update `AutowirePass` because of that.

On the other hand, it was neither documented that we allow `null` here nor did the container do anything useful (`has(null)` always resulted in `false` and `get(null)` always returned `null`).

Commits
-------

d9095aa892 [DependencyInjection] Implement psr/container 1.1
2021-03-06 09:21:02 +01:00
Fabien Potencier
94b8e32c4c Fix typo 2021-03-06 09:14:32 +01:00
Fabien Potencier
f467708b06 Merge branch '5.2' into 5.x
* 5.2:
  Fix typo
2021-03-06 09:11:22 +01:00
Fabien Potencier
436f697d81 Fix typo 2021-03-06 09:10:55 +01:00
Fabien Potencier
e53bb8b4f2 Merge branch '5.2' into 5.x
* 5.2:
  Fix #36973: Command description consistency
  Render email once
2021-03-06 09:05:19 +01:00
Fabien Potencier
7ed3d36f53 Merge branch '4.4' into 5.2
* 4.4:
  Fix #36973: Command description consistency
  Render email once
2021-03-06 08:59:01 +01:00
Fabien Potencier
57fb475ebf minor #40387 Fix #36973: Command description consistency (danepowell)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix #36973: Command description consistency

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #36973
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/15062

This rewords command descriptions and options to use consistent verb mood.

Commits
-------

01e18b039a Fix #36973: Command description consistency
2021-03-06 08:54:06 +01:00
Robin Chalas
2764225a38 [Security] Decouple passwords from UserInterface 2021-03-06 00:37:05 +01:00
Alexander M. Turek
d9095aa892 [DependencyInjection] Implement psr/container 1.1 2021-03-05 23:51:52 +01:00
Alexander M. Turek
57953845ad Merge branch '5.2' into 5.x
* 5.2:
  Backport psr/container 1.1/2.0 compatibility
  Update notifier_transports.php
  Dont lock tables or start transactions
  Bump Symfony version to 5.2.5
  Update VERSION for 5.2.4
  Update CHANGELOG for 5.2.4
  Bump Symfony version to 4.4.21
  Update VERSION for 4.4.20
  Update CONTRIBUTORS for 4.4.20
  Update CHANGELOG for 4.4.20
2021-03-05 21:15:37 +01:00
Alexander M. Turek
59731896ed Merge branch '4.4' into 5.2
* 4.4:
  Backport psr/container 1.1/2.0 compatibility
  Bump Symfony version to 4.4.21
  Update VERSION for 4.4.20
  Update CONTRIBUTORS for 4.4.20
  Update CHANGELOG for 4.4.20
2021-03-05 21:13:41 +01:00
Alexander M. Turek
7f8242ef58 Backport psr/container 1.1/2.0 compatibility 2021-03-05 19:16:26 +01:00
Dane Powell
01e18b039a
Fix #36973: Command description consistency 2021-03-05 09:58:50 -08:00
Nyholm
26061a131d
Dont lock tables or start transactions 2021-03-05 13:14:19 +01:00
Robin Chalas
c656ef9cf9 minor #40367 [Security] Re-add accidentally removed property declarations (chalasr)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Security] Re-add accidentally removed property declarations

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

spotted while playing with psalm locally,  mistake made in #39802

Commits
-------

bccf736b99 [Security] Readd accidentally removed property declarations
2021-03-05 11:14:22 +01:00
Robin Chalas
bccf736b99 [Security] Readd accidentally removed property declarations 2021-03-05 10:30:44 +01:00
Fabien Potencier
f72d5165fd Bump Symfony version to 5.2.5 2021-03-04 19:11:30 +01:00
Fabien Potencier
ff8cb872d3 Update VERSION for 5.2.4 2021-03-04 19:05:55 +01:00
Fabien Potencier
2536e178b1 Bump Symfony version to 4.4.21 2021-03-04 19:04:32 +01:00
Fabien Potencier
369dea8c72 Update VERSION for 4.4.20 2021-03-04 19:00:27 +01:00
Fabien Potencier
4c6a3f9dd2 Merge branch '5.2' into 5.x
* 5.2:
  [Messenger] Doctrine setup with migrations
2021-03-04 18:39:06 +01:00
Fabien Potencier
0940043bfc bug #40336 [Messenger] Doctrine setup with migrations (Nyholm)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[Messenger] Doctrine setup with migrations

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

This PR reverts parts of #40055.

When running these commands, You do need to be in a transaction:
- `doctrine:schema:create`
- `messenger:setup-transports`
- `doctrine:migrations:diff` and `doctrine:migrations:migrate`

Commits
-------

3371e1cf39 [Messenger] Doctrine setup with migrations
2021-03-04 18:38:30 +01:00
Nyholm
3371e1cf39 [Messenger] Doctrine setup with migrations 2021-03-04 18:38:24 +01:00
Fabien Potencier
33791925af Merge branch '5.2' into 5.x
* 5.2:
  [Validator] Fix return types
  Add translation for Belarusian
  fix parsing calls of methods named "method"
  [Security] Remove unnecessary inherited doc annotation
  deal with indented heredoc/nowdoc tokens
  Adding templates for Belarusian
2021-03-04 16:41:30 +01:00
Fabien Potencier
5fea563f4a Merge branch '4.4' into 5.2
* 4.4:
  [Validator] Fix return types
  Add translation for Belarusian
  fix parsing calls of methods named "method"
  deal with indented heredoc/nowdoc tokens
  Adding templates for Belarusian
2021-03-04 16:41:09 +01:00
Fabien Potencier
218bf5ea9a bug #40318 [Translation] deal with indented heredoc/nowdoc tokens (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Translation] deal with indented heredoc/nowdoc tokens

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

Commits
-------

4721097cab deal with indented heredoc/nowdoc tokens
2021-03-04 16:39:09 +01:00
Alexander M. Turek
e67ef5bbff [Validator] Fix return types 2021-03-03 23:57:07 +01:00
Alexander M. Turek
ea741e6165 minor #40297 Add missing translations for Belarusian (Nyholm, OxanaKozlova)
This PR was merged into the 4.4 branch.

Discussion
----------

Add missing translations for Belarusian

| Q             | A
| ------------- | ---
| Branch?       | 4.4 <!-- see below -->
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #38727 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | N/A <!-- required for new features -->

Add translations for Belarusian

Commits
-------

1b84d5d23b Add translation for Belarusian
8e1d3285ed Adding templates for Belarusian
2021-03-03 18:05:48 +01:00
OxanaKozlova
1b84d5d23b Add translation for Belarusian 2021-03-03 19:55:00 +03:00
Christian Flothmann
a9de390676 fix parsing calls of methods named "method" 2021-03-03 13:11:09 +01:00
Junaid Farooq
4b70db1e85 [Security] Remove unnecessary inherited doc annotation 2021-03-02 19:18:23 +01:00
Alexander M. Turek
a8a0650161 Merge branch '5.2' into 5.x
* 5.2:
  [Messenger][SQS] Document missing option
  Specify that we run CI on Ubuntu-20.04
  zero parts can be omitted in date interval input
2021-03-02 13:23:03 +01:00
Alexander M. Turek
5985199754 Merge branch '4.4' into 5.2
* 4.4:
  Specify that we run CI on Ubuntu-20.04
  zero parts can be omitted in date interval input
2021-03-02 13:14:02 +01:00
Nyholm
bd6930effe
[Messenger][SQS] Document missing option 2021-03-02 12:28:15 +01:00
Christian Flothmann
07d7f6bad7 bug #40316 [Serializer] zero parts can be omitted in date interval input (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Serializer] zero parts can be omitted in date interval input

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

Commits
-------

c316708669 zero parts can be omitted in date interval input
2021-03-01 14:37:03 +01:00
Alexander M. Turek
f49ca6f9cc Merge branch '5.2' into 5.x
* 5.2:
  improve exception message if symfony/security-csrf is missing
  fix: MockResponse total_time should not be simulated when provided
2021-03-01 01:41:04 +01:00
Alexander M. Turek
82e3b17cf4 Merge branch '4.4' into 5.2
* 4.4:
  improve exception message if symfony/security-csrf is missing
  fix: MockResponse total_time should not be simulated when provided
2021-03-01 01:40:14 +01:00
Christian Flothmann
4721097cab deal with indented heredoc/nowdoc tokens 2021-02-26 14:53:48 +01:00
Christian Flothmann
c316708669 zero parts can be omitted in date interval input 2021-02-26 13:02:03 +01:00
Christian Flothmann
1a26ed43e7 improve exception message if symfony/security-csrf is missing 2021-02-26 11:19:16 +01:00
Nicolas Grekas
a5683c5324 bug #40239 MockResponse total_time should not be simulated when provided (Pierrick VIGNAND)
This PR was merged into the 4.4 branch.

Discussion
----------

MockResponse total_time should not be simulated when provided

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

When you provide a `total_time` to a MockResponse, it is overriden. It should be simulated only when it is not provided I guess.
Ex: `new MockResponse('{"foo":"bar"}', ['total_time' => 0.4])`

Commits
-------

8dada95cbf fix: MockResponse total_time should not be simulated when provided
2021-02-26 11:01:20 +01:00
Robin Chalas
d771e449ec [HttpKernel] Handle multi-attribute controller arguments 2021-02-26 01:25:47 +01:00
Nicolas Grekas
59fbe57ed1 feature #39607 [Messenger] Add rediss:// DSN scheme support for TLS to Redis transport (njutn95)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Messenger] Add `rediss://` DSN scheme support for TLS to Redis transport

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

This adds a support for `rediss://` DSN (as discussed in https://github.com/symfony/symfony/pull/39599) and deprecates the use of `tls` parameter introduced in https://github.com/symfony/symfony/pull/35503 so it can be standardized to single format.

Commits
-------

28e7b74b47 [Messenger] Add `rediss://` DSN scheme support for TLS to Redis transport
2021-02-26 01:02:05 +01:00
viktor
28e7b74b47 [Messenger] Add rediss:// DSN scheme support for TLS to Redis transport 2021-02-26 01:01:54 +01:00
Nicolas Grekas
008f28026c Merge branch '5.2' into 5.x
* 5.2:
  [Cache] Add server-commands support for Predis Replication Environments
  Speedup psalm
2021-02-26 00:55:26 +01:00
Nicolas Grekas
2068652fc9 Merge branch '4.4' into 5.2
* 4.4:
  [Cache] Add server-commands support for Predis Replication Environments
  Speedup psalm
2021-02-26 00:54:56 +01:00
Nicolas Grekas
3fe1564912 bug #40299 [Cache] Add server-commands support for Predis Replication Environments (DemigodCode)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Add server-commands support for Predis Replication Environments

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

This fix is for predis MasterSlaveConnections which don't allow to run server commands.
Due to that it's not possible to e.g. clear a cache with cache:pool:clear.

PhpRedis and Predis do not have the same interface, so have to check which implementation is used.
Furthermore, the getClientFor('master') works only for replicated redis instances.

Commits
-------

2ae5c33c80 [Cache] Add server-commands support for Predis Replication Environments
2021-02-26 00:52:22 +01:00