[TYPO3-german] Nach Wechsel der Sprache falsch eingeloggt

Christopher Lörken christopher at loerken.net
Tue Feb 10 11:56:45 CET 2009


Hallo zusammen,

wir haben ein leider recht dickes Problem auf unserer Seite:

Es kommt vor, dass wenn ein User die Sprache er Seite ändert plötzlich 
als ein anderer User eingeloggt ist.



Böse Sache und ich habe leider keine Ahnung woran es liegen könnte.
Wir benutzen Typo3 seit Mitte Dezember auf dem Produktionsserver und die 
ersten Berichte dieses Problems datieren auf kurz vor Weihnachten, als 
User unter falschem Namen im mm_forum posten konnten.

Die letzten 5-10 Tage haben sich offenbar mehr Leute durchgerungen, 
dieses Problem zu berichten und leider passiert es offenbar sehr häufig 
und insbesondere einigen Nutzern regelmäßig.

Ich habe das Problem zwischenzeitlich umgangen indem ich den Wechsel der 
Sprache mit einem Wechsel von .com auf .de Domain verbunden habe, das 
hat die Symptome größtenteils ausgeräumt. Das eigentliche Problem bleibt 
aber sehr akut: **Wechsel von L=0 auf L=1 ändert mitunter den 
eingeloggten User.**


Unsere Konfiguration ist dabei nichts außergewöhnliches:

- Typo3 4.2.6
- Englisch default mit deutsch als L=1.
- sr_language_menu zum Wechsel der Sprachen.
- fe_login
- Nutzerregistrierung über mm_forum
- .htaccess rewrite rules, die auf der Deutschen Domain automatisch L=1 
anhängen (sind erst nach den Berichten im Dezember eingerichtet worden).
- Cookiekonfiguration:
	keine cookieDomain
	$TYPO3_CONF_VARS['FE']['lifetime'] = '86400';
	$TYPO3_CONF_VARS['FE']['permalogin'] = '2';
	$TYPO3_CONF_VARS['FE']['lockIP'] = '4';

Wir haben als einzige Erweiterung dieser Konfiguration ein automatisches 
Einloggen der Nutzer bei Erstellung ihres Accounts implementiert. Der 
Code ist:
public static function loginUserByName($uname) {
  if (!$GLOBALS['TSFE']->fe_user) {
    $GLOBALS['TSFE']->fe_user = tslib_eidtools::initFeUser();
  }
  $GLOBALS['TSFE']->fe_user->checkPid=0; //do not use a particular pid
  $info= $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$user=$GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'],$uname);
  $GLOBALS['TSFE']->fe_user->createUserSession($user);
  $GLOBALS['TSFE']->fe_user->user = $user;

}
Die Nutzer, die betroffen sind sind jedoch durchaus schon länger 
registriert und ich habe Debug Nachrichten in diese Methode eingefügt 
und keinerlei zeitliche oder namentliche Verbindung zu unserem Problem 
gefunden.

Ich habe außerdem in t3lib_userauth bei der Berechnung der fe_typo_user 
id eine Sicherheitsabfrage implementiert ob die id bereits in der 
fe_sessions Tabelle auftritt. Dies ist bisher nicht der Fall gewesen.

Das Verhalten ist offenbar Browserunabhängig und wurde sowohl für 
Firefox 3.0.5 als auch für IE 7 bestätigt.

Ich kann das Problem für mich leider nicht reproduzieren und bin leider 
recht hilflos, was Ideen angeht, wo ich suchen und wie ich vorgehen soll.

Hat jemand von sowas schonmal gehört? Irgendwelche Ideen?



Danke für jegliches Feedback, ich hoffe es ist nur eine dumme 
Konfigurationssache...

Viele Grüße,
christopher


More information about the TYPO3-german mailing list