Skip to content

Commit d68face

Browse files
committed
chore: Move away from deprecated method in TwoFactorMiddleware
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
1 parent 9133464 commit d68face

2 files changed

Lines changed: 5 additions & 7 deletions

File tree

core/Middleware/TwoFactorMiddleware.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
use Exception;
1313
use OC\AppFramework\Http\Attributes\TwoFactorSetUpDoneRequired;
14-
use OC\AppFramework\Middleware\MiddlewareUtils;
1514
use OC\Authentication\Exceptions\TwoFactorAuthRequiredException;
1615
use OC\Authentication\Exceptions\UserAlreadyLoggedInException;
1716
use OC\Authentication\TwoFactorAuth\Manager;
@@ -23,6 +22,7 @@
2322
use OCP\AppFramework\Http\Attribute\NoTwoFactorRequired;
2423
use OCP\AppFramework\Http\RedirectResponse;
2524
use OCP\AppFramework\Middleware;
25+
use OCP\AppFramework\Utility\IControllerMethodReflector;
2626
use OCP\Authentication\TwoFactorAuth\ALoginSetupController;
2727
use OCP\IRequest;
2828
use OCP\ISession;
@@ -36,7 +36,7 @@ public function __construct(
3636
private Session $userSession,
3737
private ISession $session,
3838
private IURLGenerator $urlGenerator,
39-
private MiddlewareUtils $middlewareUtils,
39+
private IControllerMethodReflector $reflector,
4040
private IRequest $request,
4141
) {
4242
}
@@ -46,9 +46,7 @@ public function __construct(
4646
* @param string $methodName
4747
*/
4848
public function beforeController($controller, $methodName) {
49-
$reflectionMethod = new ReflectionMethod($controller, $methodName);
50-
51-
if ($this->middlewareUtils->hasAnnotationOrAttribute($reflectionMethod, 'NoTwoFactorRequired', NoTwoFactorRequired::class)) {
49+
if ($this->reflector->hasAnnotationOrAttribute('NoTwoFactorRequired', NoTwoFactorRequired::class)) {
5250
// Route handler explicitly marked to work without finished 2FA are
5351
// not blocked
5452
return;
@@ -59,6 +57,7 @@ public function beforeController($controller, $methodName) {
5957
return;
6058
}
6159

60+
$reflectionMethod = new ReflectionMethod($controller, $methodName);
6261
if ($controller instanceof TwoFactorChallengeController
6362
&& $this->userSession->getUser() !== null
6463
&& !$reflectionMethod->getAttributes(TwoFactorSetUpDoneRequired::class)) {

tests/Core/Middleware/TwoFactorMiddlewareTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
use OC\AppFramework\Http\Attributes\TwoFactorSetUpDoneRequired;
1212
use OC\AppFramework\Http\Request;
13-
use OC\AppFramework\Middleware\MiddlewareUtils;
1413
use OC\AppFramework\Utility\ControllerMethodReflector;
1514
use OC\Authentication\Exceptions\TwoFactorAuthRequiredException;
1615
use OC\Authentication\Exceptions\UserAlreadyLoggedInException;
@@ -102,7 +101,7 @@ protected function setUp(): void {
102101
$this->createMock(IConfig::class)
103102
);
104103

105-
$this->middleware = new TwoFactorMiddleware($this->twoFactorManager, $this->userSession, $this->session, $this->urlGenerator, new MiddlewareUtils($this->reflector, $this->logger), $this->request);
104+
$this->middleware = new TwoFactorMiddleware($this->twoFactorManager, $this->userSession, $this->session, $this->urlGenerator, $this->reflector, $this->request);
106105
}
107106

108107
public function testBeforeControllerNotLoggedIn(): void {

0 commit comments

Comments
 (0)