Browse Source
fix(login): Also check legacy annotation for ephemeral sessions
Signed-off-by: Louis Chemineau <louis@chmn.me>
pull/51095/head
Louis Chemineau
10 months ago
Failed to extract signature
2 changed files with
7 additions and
6 deletions
-
lib/private/AppFramework/DependencyInjection/DIContainer.php
-
lib/private/AppFramework/Middleware/FlowV2EphemeralSessionsMiddleware.php
|
|
|
@ -217,12 +217,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { |
|
|
|
) |
|
|
|
); |
|
|
|
|
|
|
|
$dispatcher->registerMiddleware( |
|
|
|
new FlowV2EphemeralSessionsMiddleware( |
|
|
|
$c->get(ISession::class), |
|
|
|
$c->get(IUserSession::class), |
|
|
|
) |
|
|
|
); |
|
|
|
$dispatcher->registerMiddleware($c->get(FlowV2EphemeralSessionsMiddleware::class)); |
|
|
|
|
|
|
|
$securityMiddleware = new SecurityMiddleware( |
|
|
|
$c->get(IRequest::class), |
|
|
|
|
|
|
|
@ -7,6 +7,7 @@ declare(strict_types=1); |
|
|
|
*/ |
|
|
|
namespace OC\AppFramework\Middleware; |
|
|
|
|
|
|
|
use OC\AppFramework\Utility\ControllerMethodReflector; |
|
|
|
use OC\Core\Controller\ClientFlowLoginV2Controller; |
|
|
|
use OCP\AppFramework\Controller; |
|
|
|
use OCP\AppFramework\Middleware; |
|
|
|
@ -20,6 +21,7 @@ class FlowV2EphemeralSessionsMiddleware extends Middleware { |
|
|
|
public function __construct( |
|
|
|
private ISession $session, |
|
|
|
private IUserSession $userSession, |
|
|
|
private ControllerMethodReflector $reflector, |
|
|
|
) { |
|
|
|
} |
|
|
|
|
|
|
|
@ -40,6 +42,10 @@ class FlowV2EphemeralSessionsMiddleware extends Middleware { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if ($this->reflector->hasAnnotation('PublicPage')) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
$this->userSession->logout(); |
|
|
|
$this->session->close(); |
|
|
|
} |
|
|
|
|