diff --git a/typo3/sysext/felogin/Classes/Controller/LoginController.php b/typo3/sysext/felogin/Classes/Controller/LoginController.php index 941ab8f97b637706688707a7344ae839d80baa38..64ba1d194ec30b2b1fd844346714b065b5a0305d 100644 --- a/typo3/sysext/felogin/Classes/Controller/LoginController.php +++ b/typo3/sysext/felogin/Classes/Controller/LoginController.php @@ -31,6 +31,7 @@ use TYPO3\CMS\FrontendLogin\Event\LoginErrorOccurredEvent; use TYPO3\CMS\FrontendLogin\Event\LogoutConfirmedEvent; use TYPO3\CMS\FrontendLogin\Event\ModifyLoginFormViewEvent; use TYPO3\CMS\FrontendLogin\Redirect\RedirectHandler; +use TYPO3\CMS\FrontendLogin\Redirect\RedirectMode; use TYPO3\CMS\FrontendLogin\Redirect\ServerRequestHandler; use TYPO3\CMS\FrontendLogin\Service\UserService; use TYPO3\CMS\FrontendLogin\Validation\RedirectUrlValidator; @@ -231,6 +232,11 @@ class LoginController extends AbstractLoginFormController */ protected function getRefererForLoginForm(): string { + // Early return, if redirectMode is not configured to respect the referer + if (!$this->isRefererRedirectEnabled()) { + return ''; + } + $referer = (string)( $this->request->getParsedBody()['referer'] ?? $this->request->getQueryParams()['referer'] ?? @@ -293,6 +299,16 @@ class LoginController extends AbstractLoginFormController || $GLOBALS['TYPO3_CONF_VARS']['FE']['lifetime'] === 0; } + /** + * Returns, if redirect based on the referer is enabled + */ + protected function isRefererRedirectEnabled(): bool + { + $refererRedirectModes = [RedirectMode::REFERER, RedirectMode::REFERER_DOMAINS]; + $configuredRedirectModes = GeneralUtility::trimExplode(',', $this->settings['redirectMode'] ?? ''); + return count(array_intersect($configuredRedirectModes, $refererRedirectModes)) > 0; + } + /** * Redirect to overview on login successful and setting showLogoutFormAfterLogin disabled */ diff --git a/typo3/sysext/felogin/Classes/Validation/RedirectUrlValidator.php b/typo3/sysext/felogin/Classes/Validation/RedirectUrlValidator.php index 83e04cef35847129f370bf3d82c8cf9986c40ede..311bbe87e45cb18626ea820b168652b41752522a 100644 --- a/typo3/sysext/felogin/Classes/Validation/RedirectUrlValidator.php +++ b/typo3/sysext/felogin/Classes/Validation/RedirectUrlValidator.php @@ -55,7 +55,7 @@ class RedirectUrlValidator implements LoggerAwareInterface return true; } // URL is not allowed - $this->logger->warning('Url "{url}" was not accepted.', ['url' => $value]); + $this->logger->debug('Url "{url}" was not accepted.', ['url' => $value]); return false; }