aboutsummaryrefslogtreecommitdiffstats
path: root/apps/testing/lib/Controller/RateLimitTestController.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/testing/lib/Controller/RateLimitTestController.php')
-rw-r--r--apps/testing/lib/Controller/RateLimitTestController.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/apps/testing/lib/Controller/RateLimitTestController.php b/apps/testing/lib/Controller/RateLimitTestController.php
new file mode 100644
index 00000000000..d3700b69858
--- /dev/null
+++ b/apps/testing/lib/Controller/RateLimitTestController.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Testing\Controller;
+
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\Attribute\AnonRateLimit;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
+use OCP\AppFramework\Http\Attribute\PublicPage;
+use OCP\AppFramework\Http\Attribute\UserRateLimit;
+use OCP\AppFramework\Http\JSONResponse;
+
+class RateLimitTestController extends Controller {
+ /**
+ * @return JSONResponse
+ */
+ #[PublicPage]
+ #[NoCSRFRequired]
+ #[UserRateLimit(limit: 5, period: 100)]
+ #[AnonRateLimit(limit: 1, period: 100)]
+ public function userAndAnonProtected() {
+ return new JSONResponse();
+ }
+
+ /**
+ * @return JSONResponse
+ */
+ #[PublicPage]
+ #[NoCSRFRequired]
+ #[AnonRateLimit(limit: 1, period: 10)]
+ public function onlyAnonProtected() {
+ return new JSONResponse();
+ }
+}