diff --git a/core/Controller/OCJSController.php b/core/Controller/OCJSController.php index 71f0941b46ce1..379b08bf22ea9 100644 --- a/core/Controller/OCJSController.php +++ b/core/Controller/OCJSController.php @@ -98,6 +98,7 @@ public function __construct($appName, /** * @NoCSRFRequired + * @NoTwoFactorRequired * @PublicPage * * @return DataDisplayResponse diff --git a/core/Middleware/TwoFactorMiddleware.php b/core/Middleware/TwoFactorMiddleware.php index fbdb106b7bb59..4c13a99a1aabb 100644 --- a/core/Middleware/TwoFactorMiddleware.php +++ b/core/Middleware/TwoFactorMiddleware.php @@ -83,6 +83,12 @@ public function __construct(Manager $twoFactorManager, Session $userSession, ISe * @param string $methodName */ public function beforeController($controller, $methodName) { + if ($this->reflector->hasAnnotation('NoTwoFactorRequired')) { + // Route handler explicitly marked to work without finished 2FA are + // not blocked + return; + } + if ($controller instanceof APIController && $methodName === 'poll') { // Allow polling the twofactor nextcloud notifications state return;