aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/Security/Bruteforce/IThrottler.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Security/Bruteforce/IThrottler.php')
-rw-r--r--lib/public/Security/Bruteforce/IThrottler.php19
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/public/Security/Bruteforce/IThrottler.php b/lib/public/Security/Bruteforce/IThrottler.php
index 6f492d6c59d..03c8c56a23c 100644
--- a/lib/public/Security/Bruteforce/IThrottler.php
+++ b/lib/public/Security/Bruteforce/IThrottler.php
@@ -40,16 +40,19 @@ namespace OCP\Security\Bruteforce;
interface IThrottler {
/**
* @since 25.0.0
+ * @deprecated 28.0.0
*/
public const MAX_DELAY = 25;
/**
* @since 25.0.0
+ * @deprecated 28.0.0
*/
public const MAX_DELAY_MS = 25000; // in milliseconds
/**
* @since 25.0.0
+ * @deprecated 28.0.0
*/
public const MAX_ATTEMPTS = 10;
@@ -58,7 +61,7 @@ interface IThrottler {
*
* @param string $action
* @param string $ip
- * @param array $metadata Optional metadata logged to the database
+ * @param array $metadata Optional metadata logged with the attempt
* @since 25.0.0
*/
public function registerAttempt(string $action, string $ip, array $metadata = []): void;
@@ -71,16 +74,28 @@ interface IThrottler {
* @param float $maxAgeHours
* @return int
* @since 25.0.0
+ * @deprecated 28.0.0 This method is considered internal as of Nextcloud 28. Use {@see showBruteforceWarning()} to decide whether a warning should be shown.
*/
public function getAttempts(string $ip, string $action = '', float $maxAgeHours = 12): int;
/**
+ * Whether a warning should be shown about the throttle
+ *
+ * @param string $ip
+ * @param string $action optionally filter by action
+ * @return bool
+ * @since 28.0.0
+ */
+ public function showBruteforceWarning(string $ip, string $action = ''): bool;
+
+ /**
* Get the throttling delay (in milliseconds)
*
* @param string $ip
* @param string $action optionally filter by action
* @return int
* @since 25.0.0
+ * @deprecated 28.0.0 This method is considered internal as of Nextcloud 28. Use {@see showBruteforceWarning()} to decide whether a warning should be shown.
*/
public function getDelay(string $ip, string $action = ''): int;
@@ -99,6 +114,7 @@ interface IThrottler {
*
* @param string $ip
* @since 25.0.0
+ * @deprecated 28.0.0 This method is considered internal as of Nextcloud 28. Use {@see resetDelay()} and only reset the entries of your action and metadata
*/
public function resetDelayForIP(string $ip): void;
@@ -109,6 +125,7 @@ interface IThrottler {
* @param string $action optionally filter by action
* @return int the time spent sleeping
* @since 25.0.0
+ * @deprecated 28.0.0 Use {@see sleepDelayOrThrowOnMax()} instead and abort handling the request when it throws
*/
public function sleepDelay(string $ip, string $action = ''): int;