aboutsummaryrefslogtreecommitdiffstats
path: root/apps/federation
diff options
context:
space:
mode:
authorKate <26026535+provokateurin@users.noreply.github.com>2024-08-14 09:40:41 +0200
committerGitHub <noreply@github.com>2024-08-14 09:40:41 +0200
commit1f1cb6da4843e2d16bf0e1cb48821a0d7d70a84e (patch)
tree28ea47db740d5f70db61daaddcb9b9ad6c712cf2 /apps/federation
parentca9752482c8d36a4528972ef82ad87004034cdc8 (diff)
parentdc1c2c3bed10d5743d054779d63dd38bc976b97a (diff)
downloadnextcloud-server-1f1cb6da4843e2d16bf0e1cb48821a0d7d70a84e.tar.gz
nextcloud-server-1f1cb6da4843e2d16bf0e1cb48821a0d7d70a84e.zip
Merge pull request #46806 from nextcloud/refactor/federation/security-attributes
Diffstat (limited to 'apps/federation')
-rw-r--r--apps/federation/lib/Controller/OCSAuthAPIController.php31
-rw-r--r--apps/federation/lib/Controller/SettingsController.php9
2 files changed, 20 insertions, 20 deletions
diff --git a/apps/federation/lib/Controller/OCSAuthAPIController.php b/apps/federation/lib/Controller/OCSAuthAPIController.php
index b4849b274b8..8412868da42 100644
--- a/apps/federation/lib/Controller/OCSAuthAPIController.php
+++ b/apps/federation/lib/Controller/OCSAuthAPIController.php
@@ -10,7 +10,10 @@ namespace OCA\Federation\Controller;
use OCA\Federation\DbHandler;
use OCA\Federation\TrustedServers;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\BruteForceProtection;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\OpenAPI;
+use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCSController;
@@ -63,10 +66,6 @@ class OCSAuthAPIController extends OCSController {
/**
* Request received to ask remote server for a shared secret, for legacy end-points
*
- * @NoCSRFRequired
- * @PublicPage
- * @BruteForceProtection(action=federationSharedSecret)
- *
* @param string $url URL of the server
* @param string $token Token of the server
* @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
@@ -74,6 +73,9 @@ class OCSAuthAPIController extends OCSController {
*
* 200: Shared secret requested successfully
*/
+ #[NoCSRFRequired]
+ #[PublicPage]
+ #[BruteForceProtection(action: 'federationSharedSecret')]
public function requestSharedSecretLegacy(string $url, string $token): DataResponse {
return $this->requestSharedSecret($url, $token);
}
@@ -82,10 +84,6 @@ class OCSAuthAPIController extends OCSController {
/**
* Create shared secret and return it, for legacy end-points
*
- * @NoCSRFRequired
- * @PublicPage
- * @BruteForceProtection(action=federationSharedSecret)
- *
* @param string $url URL of the server
* @param string $token Token of the server
* @return DataResponse<Http::STATUS_OK, array{sharedSecret: string}, array{}>
@@ -93,6 +91,9 @@ class OCSAuthAPIController extends OCSController {
*
* 200: Shared secret returned
*/
+ #[NoCSRFRequired]
+ #[PublicPage]
+ #[BruteForceProtection(action: 'federationSharedSecret')]
public function getSharedSecretLegacy(string $url, string $token): DataResponse {
return $this->getSharedSecret($url, $token);
}
@@ -100,10 +101,6 @@ class OCSAuthAPIController extends OCSController {
/**
* Request received to ask remote server for a shared secret
*
- * @NoCSRFRequired
- * @PublicPage
- * @BruteForceProtection(action=federationSharedSecret)
- *
* @param string $url URL of the server
* @param string $token Token of the server
* @return DataResponse<Http::STATUS_OK, array<empty>, array{}>
@@ -111,6 +108,9 @@ class OCSAuthAPIController extends OCSController {
*
* 200: Shared secret requested successfully
*/
+ #[NoCSRFRequired]
+ #[PublicPage]
+ #[BruteForceProtection(action: 'federationSharedSecret')]
public function requestSharedSecret(string $url, string $token): DataResponse {
if ($this->trustedServers->isTrustedServer($url) === false) {
$this->throttler->registerAttempt('federationSharedSecret', $this->request->getRemoteAddress());
@@ -144,10 +144,6 @@ class OCSAuthAPIController extends OCSController {
/**
* Create shared secret and return it
*
- * @NoCSRFRequired
- * @PublicPage
- * @BruteForceProtection(action=federationSharedSecret)
- *
* @param string $url URL of the server
* @param string $token Token of the server
* @return DataResponse<Http::STATUS_OK, array{sharedSecret: string}, array{}>
@@ -155,6 +151,9 @@ class OCSAuthAPIController extends OCSController {
*
* 200: Shared secret returned
*/
+ #[NoCSRFRequired]
+ #[PublicPage]
+ #[BruteForceProtection(action: 'federationSharedSecret')]
public function getSharedSecret(string $url, string $token): DataResponse {
if ($this->trustedServers->isTrustedServer($url) === false) {
$this->throttler->registerAttempt('federationSharedSecret', $this->request->getRemoteAddress());
diff --git a/apps/federation/lib/Controller/SettingsController.php b/apps/federation/lib/Controller/SettingsController.php
index f5cc7eae8ba..f5131581d94 100644
--- a/apps/federation/lib/Controller/SettingsController.php
+++ b/apps/federation/lib/Controller/SettingsController.php
@@ -7,8 +7,10 @@
*/
namespace OCA\Federation\Controller;
+use OCA\Federation\Settings\Admin;
use OCA\Federation\TrustedServers;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\Attribute\AuthorizedAdminSetting;
use OCP\AppFramework\Http\DataResponse;
use OCP\HintException;
use OCP\IL10N;
@@ -32,9 +34,9 @@ class SettingsController extends Controller {
/**
* Add server to the list of trusted Nextclouds.
*
- * @AuthorizedAdminSetting(settings=OCA\Federation\Settings\Admin)
* @throws HintException
*/
+ #[AuthorizedAdminSetting(settings: Admin::class)]
public function addServer(string $url): DataResponse {
$this->checkServer($url);
$id = $this->trustedServers->addServer($url);
@@ -48,9 +50,8 @@ class SettingsController extends Controller {
/**
* Add server to the list of trusted Nextclouds.
- *
- * @AuthorizedAdminSetting(settings=OCA\Federation\Settings\Admin)
*/
+ #[AuthorizedAdminSetting(settings: Admin::class)]
public function removeServer(int $id): DataResponse {
$this->trustedServers->removeServer($id);
return new DataResponse();
@@ -59,9 +60,9 @@ class SettingsController extends Controller {
/**
* Check if the server should be added to the list of trusted servers or not.
*
- * @AuthorizedAdminSetting(settings=OCA\Federation\Settings\Admin)
* @throws HintException
*/
+ #[AuthorizedAdminSetting(settings: Admin::class)]
protected function checkServer(string $url): bool {
if ($this->trustedServers->isTrustedServer($url) === true) {
$message = 'Server is already in the list of trusted servers.';