fix(login): Also check legacy annotation for ephemeral sessions

Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
Louis Chemineau 2025-02-27 13:12:55 +01:00
parent ff5a03e890
commit 9f78eaaa97
No known key found for this signature in database
2 changed files with 7 additions and 6 deletions

View file

@ -245,12 +245,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),

View file

@ -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();
}