Commit Graph

13 Commits

Author SHA1 Message Date
Oskar Stark
db392d2441
Fix: Typo 2020-10-15 10:06:30 +02:00
Fabien Potencier
19a320513a feature #38565 [RateLimiter] Adding SlidingWindow algorithm (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Adding SlidingWindow algorithm

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

This is a draft PR to make sure we like the idea. I'll keep working on adding tests.

Commits
-------

c6d3b70315 [RateLimiter] Adding SlidingWindow algorithm
2020-10-15 08:59:52 +02:00
Nyholm
c6d3b70315 [RateLimiter] Adding SlidingWindow algorithm 2020-10-15 08:59:46 +02:00
Nicolas Grekas
ffbb9883bd Merge branch '5.1' into 5.x
* 5.1:
  [Contracts] add branch-aliases for dev-main
  [Cache] Make Redis initializers static
  [Messenger] Fixed typos in Connection
  [CI] Fixed build on AppVeyor
  Fix tests typo
  [Lock] Reset Key lifetime time before we acquire it
  [CI] Silence errors when remove file/dir on test tearDown()
  Fix tests
  Remove content-type check on toArray methods
2020-10-14 19:08:19 +02:00
Nyholm
e9ac9712d8 Fix minor issue when sharing windows between Limiters 2020-10-14 18:22:58 +02:00
Nicolas Grekas
11c4f28137 Merge branch '5.1' into 5.x
* 5.1:
  fix merge
  [appveyor] fix checking for the .x branch
  Remove "branch-alias", populate "version"
2020-10-06 14:00:29 +02:00
Fabien Potencier
bd8c3c1c42 feature #38354 [RateLimiter] add Limit::ensureAccepted() which throws RateLimitExceededException if not accepted (kbond)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[RateLimiter] add Limit::ensureAccepted() which throws RateLimitExceededException if not accepted

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Ref https://github.com/symfony/symfony/issues/38241#issuecomment-695212027
| License       | MIT
| Doc PR        | todo

Example:

```php
try {
    $limit = $limiter->consume()->ensureAccepted();
} catch (RateLimitExceededException $e) {
    $limit = $e->getLimit();
}
```

Commits
-------

a7ecd0ed08 [RateLimiter] add Limit::ensureAccepted() and RateLimitExceededException
2020-10-02 13:18:49 +02:00
Kevin Bond
a7ecd0ed08
[RateLimiter] add Limit::ensureAccepted() and RateLimitExceededException 2020-10-01 20:04:22 -04:00
Wouter de Jong
5dc562a318 Use __sleep/__wakeup instead of Serializable
Fixes #38338
2020-10-01 14:20:33 +02:00
Wouter de Jong
5d03afea99 Added request rate limiters and improved login throttling
This allows limiting on different elements of a request. This is usefull to
e.g. prevent breadth-first attacks, by allowing to enforce a limit on both IP
and IP+username.
2020-09-30 21:18:40 +02:00
Wouter de Jong
0279f88e6c Call all compound limiters on failure and added IO blocking 2020-09-30 12:14:20 +02:00
Valentin
8f62afc5f9 [RateLimiter] Return Limit object on Consume method 2020-09-30 07:47:20 +02:00
Wouter de Jong
67417a693e [RFC] Introduce a RateLimiter component 2020-09-16 15:45:01 +02:00