Skip to content

Commit bcc2b38

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

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

lib/Controller/LoginController.php

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

0 commit comments

Comments
 (0)