Skip to content

Commit 17d7e7f

Browse files
committed
be more defensive about redirecting to logout in login controller
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
1 parent 5311070 commit 17d7e7f

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

lib/Controller/LoginController.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,16 @@ private function buildProtocolErrorResponse(?bool $throttle = null): TemplateRes
209209
* @return DataDisplayResponse|RedirectResponse|TemplateResponse
210210
*/
211211
public function login(int $providerId, string $redirectUrl = null) {
212+
// to be safe, avoid redirecting to logout or single-logout
213+
$logoutUrl = $this->urlGenerator->linkToRoute('core.login.logout');
214+
$userOidcLogoutUrl = $this->urlGenerator->linkToRoute(Application::APP_ID . '.login.singleLogoutService');
215+
if (
216+
$redirectUrl
217+
&& (strpos($redirectUrl, $logoutUrl) !== false || strpos($redirectUrl, $userOidcLogoutUrl) !== false)
218+
) {
219+
$redirectUrl = $this->urlGenerator->getBaseUrl();
220+
}
221+
212222
if ($this->userSession->isLoggedIn()) {
213223
return new RedirectResponse($redirectUrl);
214224
}

0 commit comments

Comments
 (0)