Aktuelle Informationen rund um TYPO3

TypoGento und neuere Versionen von TYPO3

Wer TypoGento verwendet oder verwenden möchte und dabei eine neue TYPO3-Version einsetzt, erhält bei der aktuellen Version einen Fehler. Der Fehler tritt bei allen TYPO3-Versionen auf, welche nicht mehr von der Sicherheitslücke TYPO3-CORE-SA-2011-001 betroffen sind.

Der Grund für den nun auftretenden Fehler ist ein deutlich vorgezogenes Starten der PHP-Session, wenn ein Benutzer eingeloggt ist. Dieses vorgezogene Starten der Session war für das Beheben der Sicherheitslücke entscheidend. Die Fehlermeldung, welche ein Webseiten-Besucher zu sehen bekommt ist die Folgende:

Fatal error: Mage_Core_Model_Session_Abstract::getMessages() [mage-core-model-session-abstract.getmessages]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Mage_Core_Model_Message_Collection" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /.../magento/app/code/core/Mage/Core/Model/Session/Abstract.php on line 215

Der Fehler tritt auf, weil TypoGento für das Laden von Magento-Klassen den Magento-Autoloader entfernt und gegen einen eigenen Autoloader ersetzt. Dass passiert bei Rendern des Plugin-Codes.

Typogento Logo Flagbit

TypoGento- Logo

Magento speichert PHP-Objekte serialisiert in der Session. Wenn die Session gestartet wird, werden diese Objekte wieder deserialisiert. Das klappt aber nur, wenn der Autoloader von TypoGento bereits registriert ist. Bisher war das der Fall. In den neueren TYPO3-Versionen wird die Session aber deutlich früher wieder hergestellt und der Autoloader ist noch nicht ausgetauscht bzw. registriert. Somit kommt es zu der o.g. Fehlermeldung.

Um mit dem geändertem Session-Handling umgehen zu können, haben wir einige Punkte in TypoGento refactored. Allerdings wird TypoGento nun nur noch mit TYPO3 4.3 und neuer funktionieren. Wer einen ersten Entwicklungsstand ausprobieren möchte, kann sich auf GitHub (https://github.com/Flagbit/TypoGento) den Branch “beta” downloaden. Für Feedback sind wir selbstverständlich dankbar.

Betroffen sind im Übrigen die TYPO3-Versionenen 4.3.12 und neuer, 4.4.9 und neuer sowie 4.5.4 und neuer. Somit sind also auch alle aktuellen TYPO3-Versionen betroffen.

Bisher 4 Kommentare » « Zurück zur Übersicht

  1. Thomas sagt:

    Auch in der aktuellen Version, Typo3 4.5.6 und der aktuellen Beta-Variante von TypoGenti tritt dieser Fehler auf. Eine kurze Beschreibung zur manuellen Behebung des Bugs wäre hilfreicher gewesen, als nur einen Link zu Github zu posten…

  2. Hallo Thomas,

    danke für dein Feedback. Leider ist eine “manuelle Behebung” des Fehlers nicht so einfach.

    Entscheidend ist, dass der Autoloader früher bei einem PageRequest initialisiert wird. Hierfür ist ein Hook verwendet, welcher auch mit Kommentar in der ext_localconf.php steht. Im Prinzip lässt sich so dass Problem beheben.

    Besser als ein händisches Beheben wäre aber ohnehin, wenn du schnell schreiben könntest, welcher Fehler denn genau noch auftritt. Ggf. kann ich mir das auch einal direkt bei dir auf der Seite ansehen.

  3. Artus sagt:

    Hallo Frederic,

    ich weiß nicht so recht diese Meldung einzuordnen: Derzeit entwickle ich an einer Anpassung von TypoGento unter TYPO3 4.5.7. Nun erst ist mir aufgefallen, dass dieses Thema offensichtlich wieder passé ist. Zumindest habe ich kein Problem im Backend mit einem angepassten Autoloader, der nur noch über Zeile 63 in tx_fbmagento_modadmin geladen wird – im Frontend verwende ich weiter $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/index_ts.php']['preprocessRequest']. Der Grund dafür war auch schnell gefunden: http://forge.typo3.org/issues/29274#note-4. Wie ist nun der Status des Beta-Branches zu bewerten?

  4. Artus sagt:

    Hallo Flagbit,

    mit Schließung von http://forge.typo3.org/issues/29274 besteht diese Problem nicht mehr. Zuletzt getestet mit 4.5.7. Aber was schreib’ ich hier, dem Ticket zufolge seid ihr darüber längst informiert… ;)

Kommentare als RSS abbonieren. · TrackBack URI

Schreib einen Kommentar

Comment spam protected by SpamBam