aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php')
-rw-r--r--lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php33
1 files changed, 14 insertions, 19 deletions
diff --git a/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php b/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php
index 41cba1aacd3..83e799e3d3b 100644
--- a/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php
+++ b/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,8 +7,10 @@
namespace OC\AppFramework\Middleware\PublicShare;
use OC\AppFramework\Middleware\PublicShare\Exceptions\NeedAuthenticationException;
+use OCA\Files_Sharing\AppInfo\Application;
use OCP\AppFramework\AuthPublicShareController;
-use OCP\AppFramework\Http\NotFoundResponse;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Middleware;
use OCP\AppFramework\PublicShareController;
use OCP\Files\NotFoundException;
@@ -17,23 +20,13 @@ use OCP\ISession;
use OCP\Security\Bruteforce\IThrottler;
class PublicShareMiddleware extends Middleware {
- /** @var IRequest */
- private $request;
-
- /** @var ISession */
- private $session;
-
- /** @var IConfig */
- private $config;
-
- /** @var IThrottler */
- private $throttler;
- public function __construct(IRequest $request, ISession $session, IConfig $config, IThrottler $throttler) {
- $this->request = $request;
- $this->session = $session;
- $this->config = $config;
- $this->throttler = $throttler;
+ public function __construct(
+ private IRequest $request,
+ private ISession $session,
+ private IConfig $config,
+ private IThrottler $throttler,
+ ) {
}
public function beforeController($controller, $methodName) {
@@ -92,7 +85,9 @@ class PublicShareMiddleware extends Middleware {
}
if ($exception instanceof NotFoundException) {
- return new NotFoundResponse();
+ return new TemplateResponse(Application::APP_ID, 'sharenotfound', [
+ 'message' => $exception->getMessage(),
+ ], 'guest', Http::STATUS_NOT_FOUND);
}
if ($controller instanceof AuthPublicShareController && $exception instanceof NeedAuthenticationException) {
@@ -126,7 +121,7 @@ class PublicShareMiddleware extends Middleware {
private function throttle($bruteforceProtectionAction, $token): void {
$ip = $this->request->getRemoteAddress();
- $this->throttler->sleepDelay($ip, $bruteforceProtectionAction);
+ $this->throttler->sleepDelayOrThrowOnMax($ip, $bruteforceProtectionAction);
$this->throttler->registerAttempt($bruteforceProtectionAction, $ip, ['token' => $token]);
}
}