From 43d6921772ee3f20b8a242095867470f2f5177ed Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 29 Apr 2021 08:44:53 +0200 Subject: [PATCH] 429 template is NC20+ and fix getDelay for CLI Signed-off-by: Joas Schilling --- .../Middleware/Security/RateLimitingMiddleware.php | 6 ++++-- lib/private/Security/Bruteforce/Throttler.php | 4 ++++ .../Middleware/Security/RateLimitingMiddlewareTest.php | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php index de628bd9ca6..38872c9ffc6 100644 --- a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php @@ -114,8 +114,10 @@ class RateLimitingMiddleware extends Middleware { } else { $response = new TemplateResponse( 'core', - '429', - [], + '403', + [ + 'message' => $exception->getMessage(), + ], 'guest' ); $response->setStatus($exception->getCode()); diff --git a/lib/private/Security/Bruteforce/Throttler.php b/lib/private/Security/Bruteforce/Throttler.php index 1bece6a05d5..d1a5f6d4488 100644 --- a/lib/private/Security/Bruteforce/Throttler.php +++ b/lib/private/Security/Bruteforce/Throttler.php @@ -212,6 +212,10 @@ class Throttler { return 0; } + if ($ip === '') { + return 0; + } + $cutoffTime = (new \DateTime()) ->sub($this->getCutoff(43200)) ->getTimestamp(); diff --git a/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php b/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php index 4e564f3eead..2804b8cd90c 100644 --- a/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php +++ b/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php @@ -270,8 +270,10 @@ class RateLimitingMiddlewareTest extends TestCase { $result = $this->rateLimitingMiddleware->afterException($controller, 'testMethod', new RateLimitExceededException()); $expected = new TemplateResponse( 'core', - '429', - [], + '403', + [ + 'message' => 'Rate limit exceeded', + ], 'guest' ); $expected->setStatus(429);