Commit Graph

43304 Commits

Author SHA1 Message Date
Fabien Potencier
2f0bc30e38 Fix CS 2021-02-14 11:23:24 +01:00
Beno!t POLASZEK
56545fd270 [DependencyInjection] Negated (not:) env var processor 2021-02-14 11:22:13 +01:00
Wouter de Jong
c757845643 feature #39802 [Security] Extract password hashing from security-core - with proper wording (chalasr)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Security] Extract password hashing from security-core - with proper wording

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

This PR renames password "encoders" to password _hashers_ (naming widely used, see e.g. django or laravel).
This also takes the opportunity to extract the logic related to password hashing from security-core, moving it to a new password-hasher component.
Nowadays, many modern web apps and APIs don't deal with passwords at all, that's why splitting makes sense as a step towards making security-core not tied to the password concept.

For upgrading, applications will have to use `passwords_hashers` instead of `encoders` in their security configuration,  and type-hint against `PasswordHasherInterface` (and related) instead of `PasswordEncoderInterface`.

The proposed API is not much different from the encoder one regarding behavior and signatures, and it is slightly more close to the PHP built-in password hashing API:

```php
namespace Symfony\Component\PasswordHasher;

interface PasswordHasherInterface
{
    public function hash(string $plainPassword): string;

    public function verify(string $hashedPassword, string $plainPassword): bool;

    public function needsRehash(string $hashedPassword): bool;
}
```

Commits
-------

c5c981c559 [Security] Extract password hashing from security-core - using the right naming
2021-02-12 16:53:00 +01:00
Robin Chalas
c5c981c559 [Security] Extract password hashing from security-core - using the right naming 2021-02-12 16:42:42 +01:00
Christian Flothmann
fe4e2956e3 Merge branch '5.2' into 5.x
* 5.2:
  add missing return type declaration
  Modernize func_get_args() calls to variadic parameters
  Use a lazyintertor to close files descriptors when no longer used
2021-02-12 11:47:00 +01:00
Christian Flothmann
6dce3227db Merge branch '4.4' into 5.2
* 4.4:
  add missing return type declaration
  Modernize func_get_args() calls to variadic parameters
  Use a lazyintertor to close files descriptors when no longer used
2021-02-12 11:38:38 +01:00
Christian Flothmann
cfce9cbd59 add missing return type declaration 2021-02-12 11:28:39 +01:00
Fabien Potencier
dc20a31179 bug #40040 [Finder] Use a lazyIterator to close files descriptors when no longer used (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Finder] Use a lazyIterator to close files descriptors when no longer used

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

The `RecursiveDirectoryIterator` class open the file on `__construct`.
Because we Inject an instance of `RecursiveDirectoryIterator` inside the \AppendIterator` class, php opens a lot of file even before iterating on it.

This PR adds a new `LazyIterator` class that instantiate the decorated class only when something starts iterating on it.
When the iteration is over, it unset the variable to close let the decorated class clean things (ie. close the files)

Commits
-------

7117e1a798 Use a lazyintertor to close files descriptors when no longer used
2021-02-12 08:28:15 +01:00
Alexander M. Turek
9323f413cb Merge branch '5.2' into 5.x
* 5.2:
  [Contracts] fix branch-aliases
  Fix transient test
2021-02-12 01:05:48 +01:00
Alexander M. Turek
f2f880ac2c feature #40143 [Filesystem] improve messages on failure (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Filesystem] improve messages on failure

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

Commits
-------

f5ddfadcb2 [Filesystem] improve messages on failure
2021-02-11 20:49:37 +01:00
Alexander M. Turek
1f067bc4f7 bug #40114 [HttpFoundation] Fix consistency in sessions not found exceptions (jderusse)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[HttpFoundation] Fix consistency in sessions not found exceptions

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

Make `Request::getSession` thrown a `SessionNotFoundException` and make `SessionNotFoundException` extends `\BadMethodCallException` for backward compatibility and

Commits
-------

7fcb76d367 Fix consistency in sessions not found exceptions
2021-02-11 20:46:04 +01:00
Alexander M. Turek
5b536131f7 Modernize func_get_args() calls to variadic parameters 2021-02-11 20:34:41 +01:00
Alexander M. Turek
d97ab18aa6 feature #40144 [Filesystem] Remove dirs atomically if possible (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Filesystem] Remove dirs atomically if possible

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

Commits
-------

17bccca9c6 [Filesystem] remove dirs atomically if possible
2021-02-11 20:02:08 +01:00
Nicolas Grekas
b3f046d81d Merge branch '4.4' into 5.2
* 4.4:
  [Contracts] fix branch-aliases
  Fix transient test
2021-02-11 13:36:50 +01:00
Nicolas Grekas
b22562f975 [Contracts] fix branch-aliases 2021-02-11 13:34:09 +01:00
Thomas Calvet
88a99ddbdf [Uid] Add UuidFactory to create Ulid and Uuid from timestamps, namespaces and nodes 2021-02-11 13:13:32 +01:00
Jérémy Derussé
7fcb76d367
Fix consistency in sessions not found exceptions 2021-02-11 12:50:39 +01:00
Nicolas Grekas
37e1823598 feature #39688 [FrameworkBundle][Messenger] Added RouterContextMiddleware (jderusse)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[FrameworkBundle][Messenger] Added RouterContextMiddleware

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

When handling a message in async, we, sometimes need the Router Context to generate absolute URL. ie:
- sending an email when the message contains only the template
- generating a PDF

People can use the configuration `router.default_uri` to workaround and fix the issue, but this does not work when the web application servers several domains.

This PR provide a new middleware that store the current router context in a stamp, and restore the context when processing the message.

Commits
-------

8fe8b96921 [Messenger] Added RouterContextMiddleware
2021-02-11 10:44:25 +01:00
Nicolas Grekas
b0267e6dcf Fix transient test 2021-02-11 10:33:17 +01:00
Nicolas Grekas
bbc2d6a8b6 Merge branch '5.2' into 5.x
* 5.2:
  Skip checking return types on PHP <= 7.2
  [RateLimiter] Fix sliding_window misbehaving with stale records
2021-02-11 09:21:33 +01:00
Nicolas Grekas
55ca168ee1 Merge branch '4.4' into 5.2
* 4.4:
  Skip checking return types on PHP <= 7.2
2021-02-11 09:21:20 +01:00
Nicolas Grekas
de2f22086e Skip checking return types on PHP <= 7.2 2021-02-11 09:19:35 +01:00
Fabien Potencier
b636e6667a bug #40141 [RateLimiter] Fix sliding_window misbehaving with stale records (xesxen)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[RateLimiter] Fix sliding_window misbehaving with stale records

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

Currently the SlidingWindow RateLimiter returns a negative value for getHitCount if the previous SlidingWindow was too long ago. This results in a really high value from `SlidingWindowLimiter::getAvailableTokens()` which is higher than the configured limit.

This limits the value of percentOfCurrentTimeframe in `SlidingWindow::getHitCount()` to 1 so it can't result in a negative hitcount.

The 2nd fix fixes the SlidingWindow instance (essentially) not storing hits if the previous instance is way in the past, as the next instance will still be "in the past". This causes RateLimit to behave as if it were disabled until it has caught up again, which could take a long time when it is configured with a small window size.

Commits
-------

57033164c6 [RateLimiter] Fix sliding_window misbehaving with stale records
2021-02-11 08:56:23 +01:00
Xesxen
57033164c6 [RateLimiter] Fix sliding_window misbehaving with stale records 2021-02-11 08:56:13 +01:00
Fabien Potencier
042d634477 Fix CS 2021-02-11 08:50:48 +01:00
Fabien Potencier
f93b7381d8 feature #40102 [Notifier] [Firebase] Add data field to options (Raresmldvn)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Notifier] [Firebase] Add data field to options

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | https://github.com/symfony/symfony/issues/40078
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

The Firebase Notifier must comply to the specifications at https://firebase.google.com/docs/cloud-messaging/xmpp-server-ref.html#notification-payload-support .
The options are missing the `data` field which is a common field for all types of notifications: web, ios and android.

Commits
-------

fa8064bbd3 [Notifier] [Firebase] Add data field to options
2021-02-11 08:48:11 +01:00
Rares Moldovan
fa8064bbd3 [Notifier] [Firebase] Add data field to options 2021-02-11 08:48:04 +01:00
Nicolas Grekas
fd154e3079 Merge branch '5.2' into 5.x
* 5.2:
  fix test
2021-02-10 19:01:17 +01:00
Nicolas Grekas
0bb4ba1941 Merge branch '4.4' into 5.2
* 4.4:
  fix test
2021-02-10 19:01:05 +01:00
Nicolas Grekas
7c86c1d593 fix test 2021-02-10 19:00:01 +01:00
Nicolas Grekas
f2ed81b55e Merge branch '5.2' into 5.x
* 5.2:
  [HttpKernel] fix transient test
  [FrameworkBundle] Fix freshness checks with boolean parameters on routes
  forward the label_html option to expanded choice fields
  [FrameworkBundle] fix registering "annotations.cache" on the "container.hot_path"
  Add some information about the username in CONTRIBUTORS
2021-02-10 18:27:22 +01:00
Nicolas Grekas
0a26f1be0b Merge branch '4.4' into 5.2
* 4.4:
  [HttpKernel] fix transient test
  [FrameworkBundle] Fix freshness checks with boolean parameters on routes
  [FrameworkBundle] fix registering "annotations.cache" on the "container.hot_path"
  Add some information about the username in CONTRIBUTORS
2021-02-10 18:26:35 +01:00
Nicolas Grekas
db66fb5838 [HttpKernel] fix transient test 2021-02-10 18:16:49 +01:00
Nicolas Grekas
17bccca9c6 [Filesystem] remove dirs atomically if possible 2021-02-10 18:13:44 +01:00
Nicolas Grekas
52a999ca3d bug #40135 [FrameworkBundle] Fix freshness checks with boolean parameters on routes (HypeMC)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] Fix freshness checks with boolean parameters on routes

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

Commits
-------

af6db0cfaf [FrameworkBundle] Fix freshness checks with boolean parameters on routes
2021-02-10 17:53:48 +01:00
Nicolas Grekas
f5ddfadcb2 [Filesystem] improve messages on failure 2021-02-10 17:53:17 +01:00
HypeMC
af6db0cfaf [FrameworkBundle] Fix freshness checks with boolean parameters on routes 2021-02-10 16:28:23 +01:00
Christian Flothmann
fbe49cf84d forward the label_html option to expanded choice fields 2021-02-09 09:56:11 +01:00
Nicolas Grekas
e196c1ecb3 [FrameworkBundle] fix registering "annotations.cache" on the "container.hot_path" 2021-02-09 09:55:59 +01:00
Jérémy Derussé
8fe8b96921
[Messenger] Added RouterContextMiddleware 2021-02-08 23:23:42 +01:00
Nicolas Grekas
20bb3cb3ab Merge branch '5.2' into 5.x
* 5.2:
  merge translation parameters with value configured for parent form
  scan directories for translations sequentially
  Fix kafka tests
  Fix "provide" declarations
  Provide implemented packages of replaced dependencies
  Always autoload string functions on symfony/symfony
2021-02-08 11:24:30 +01:00
Nicolas Grekas
7866a0fbd6 Merge branch '4.4' into 5.2
* 4.4:
  scan directories for translations sequentially
2021-02-08 11:23:22 +01:00
Nicolas Grekas
00e33563c7 bug #40116 [FrameworkBundle][Translator] scan directories for translations sequentially (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle][Translator] scan directories for translations sequentially

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

Commits
-------

8389310983 scan directories for translations sequentially
2021-02-07 19:50:11 +01:00
Christian Flothmann
3de453c368 merge translation parameters with value configured for parent form 2021-02-07 15:53:40 +01:00
Christian Flothmann
8389310983 scan directories for translations sequentially 2021-02-07 10:52:31 +01:00
Jérémy Derussé
99c79c966b
Fix FQDN class 2021-02-06 11:28:18 +01:00
Nicolas Grekas
36e5051171 Fix "provide" declarations 2021-02-06 09:54:26 +01:00
Nicolas Grekas
6891550582 Merge branch '4.4' into 5.2
* 4.4:
  Provide implemented packages of replaced dependencies
2021-02-06 09:52:42 +01:00
Simon Berger
57d9a818bb Provide implemented packages of replaced dependencies 2021-02-06 09:48:04 +01:00
Jérémy Derussé
7117e1a798
Use a lazyintertor to close files descriptors when no longer used 2021-02-05 21:09:52 +01:00