Zum Inhalt springen

Eigenes Login mit Extbase

Erstellt am 4. Februar 2015 · 2 Antworten · letzte Antwort am 4. Februar 2015

Tags: Frage

dschumbi ·

Hallo,

ich habe in einer eigenen Extension ein Login geschrieben. Nach eine Update von 6.1.7 auf 6.2.9 funktioniert das ganze aber nicht mehr so richtig. Das Problem ist, dass der User immer eingeloggt wird, egal, welches Passwort er angibt.

Ich hab hier mal den Code:

$password       = $this->request->getArgument('password');

        $success = FALSE;
        $loginData = array(
            'uname' => $this->request->getArgument('kundennummer').$this->request->getArgument('email'),
            'uident_text' => $this->request->getArgument('password'),
            'status' => 'login'
        );

						/** @var $frontEndUser tslib_feUserAuth */
						$frontEndUser = $GLOBALS['TSFE']->fe_user;
						$frontEndUser->checkPid = FALSE;

						$authenticationData = $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
						$userData = $frontEndUser->fetchUserRecord($authenticationData['db_user'], $loginData['uname']);
						$frontEndUser->user = $userData;
						

						if (\TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
								$objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance(NULL, 'FE');
								if (is_object($objSalt)) {
										$saltedPassword = $objSalt->getHashedPassword($password);

								}
								$objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance($saltedPassword, 'FE');
								if (is_object($objSalt)) {
										$success = $objSalt->checkPassword($password, $saltedPassword);
								}
						}

wenn ich am Ende dann $success ausgeben lasse, erscheint immer TRUE, egal mit welchem Passwort.

Caches sind gelöscht und saltedpasswords mit rsa ist aktiviert.

Hat jemand schon mal das gleiche Problem gehabt?

Danke für eure Hilfe!

Grüße
Heiko

toifel ·

Sicher, dass es jemals richtig funktioniert hat?
In deinem Code wird $frontEndUser->user ja überhaupt nicht weiter genutzt, wenn es um den Vergleich der Passwörter geht.

Sieht für mich so aus, als würdest du getArgument('password') salzen und das Ergebnis dann wieder mit getArgument('password') abgleichen - da kann dann immer nur TRUE bei raus kommen.