diff options
author | Joas Schilling <coding@schilljs.com> | 2021-04-23 10:21:14 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2021-04-27 13:55:34 +0200 |
commit | 174f4dd0438ea59e311f5201f59ece3301976df9 (patch) | |
tree | 60658b306854fd3d8a66257d0d5e23b06cd270d8 | |
parent | bf1c875425e7fdf5ffd3c233ddf1f567428b4168 (diff) | |
download | nextcloud-server-174f4dd0438ea59e311f5201f59ece3301976df9.tar.gz nextcloud-server-174f4dd0438ea59e311f5201f59ece3301976df9.zip |
Fix ratelimit template
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r-- | lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php | 21 | ||||
-rw-r--r-- | tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php | 20 |
2 files changed, 16 insertions, 25 deletions
diff --git a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php index 712becb3be5..f5960880546 100644 --- a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php @@ -27,7 +27,7 @@ namespace OC\AppFramework\Middleware\Security; use OC\AppFramework\Utility\ControllerMethodReflector; use OC\Security\RateLimiting\Exception\RateLimitExceededException; use OC\Security\RateLimiting\Limiter; -use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Middleware; use OCP\IRequest; @@ -110,21 +110,14 @@ class RateLimitingMiddleware extends Middleware { public function afterException($controller, $methodName, \Exception $exception) { if ($exception instanceof RateLimitExceededException) { if (stripos($this->request->getHeader('Accept'),'html') === false) { - $response = new JSONResponse( - [ - 'message' => $exception->getMessage(), - ], - $exception->getCode() - ); + $response = new DataResponse([], $exception->getCode()); } else { $response = new TemplateResponse( - 'core', - '403', - [ - 'file' => $exception->getMessage() - ], - 'guest' - ); + 'core', + '429', + [], + TemplateResponse::RENDER_AS_GUEST + ); $response->setStatus($exception->getCode()); } diff --git a/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php b/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php index 0d27a9a070f..aa713b99156 100644 --- a/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php +++ b/tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php @@ -26,13 +26,16 @@ use OC\AppFramework\Utility\ControllerMethodReflector; use OC\Security\RateLimiting\Exception\RateLimitExceededException; use OC\Security\RateLimiting\Limiter; use OCP\AppFramework\Controller; -use OCP\AppFramework\Http\JSONResponse; +use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\IRequest; use OCP\IUser; use OCP\IUserSession; use Test\TestCase; +/** + * @group DB + */ class RateLimitingMiddlewareTest extends TestCase { /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */ private $request; @@ -250,11 +253,7 @@ class RateLimitingMiddlewareTest extends TestCase { ->willReturn('JSON'); $result = $this->rateLimitingMiddleware->afterException($controller, 'testMethod', new RateLimitExceededException()); - $expected = new JSONResponse( - [ - 'message' => 'Rate limit exceeded', - ], - 429 + $expected = new DataResponse([], 429 ); $this->assertEquals($expected, $result); } @@ -271,13 +270,12 @@ class RateLimitingMiddlewareTest extends TestCase { $result = $this->rateLimitingMiddleware->afterException($controller, 'testMethod', new RateLimitExceededException()); $expected = new TemplateResponse( 'core', - '403', - [ - 'file' => 'Rate limit exceeded', - ], - 'guest' + '429', + [], + TemplateResponse::RENDER_AS_GUEST ); $expected->setStatus(429); $this->assertEquals($expected, $result); + $this->assertIsString($result->render()); } } |