summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2021-04-23 10:21:14 +0200
committerJoas Schilling <coding@schilljs.com>2021-04-27 13:55:34 +0200
commit174f4dd0438ea59e311f5201f59ece3301976df9 (patch)
tree60658b306854fd3d8a66257d0d5e23b06cd270d8
parentbf1c875425e7fdf5ffd3c233ddf1f567428b4168 (diff)
downloadnextcloud-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.php21
-rw-r--r--tests/lib/AppFramework/Middleware/Security/RateLimitingMiddlewareTest.php20
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());
}
}