Keine POST Daten an Plugin möglich ? Aufruf von Plugin Action nur ohne POST Daten?

Hallo,

seit Shopware 5.2.x habe Ich das Problem das ein Aufruf meiner Action über onGetControllerPathFrontend nur noch ohne Post Daten funktioniert.

In dem Fall handelt es sich um ein Payment Plugin welches eine Benachrichtigung vom Payment Service erhalten muss (ähnlich IPN Paypal)

Wenn Ich die Action vom Controller aufrufe ohne Postdaten mitzuschicken, wird der Controller auch aufgerufen.

Sobald aber POST Daten dabei sind, wird zwar in der Bootstrap die Methode onGetControllerPathFrontend aufgerufen und die Class eingebunden,

aber die z.b. responseAction Methode wird nicht mehr aufgerufen.

indexAction und gatewayAction laufen während des Checkouts normal durch.

Nur bei der Benachrichtung an die responseAction kommt eine Fehlermeldung:

Wir wurden bereits über das Problem informiert und arbeiten an einer Lösung, bitte versuchen Sie es in Kürze erneut.

Mittels Debugging habe Ich festgestellt, das er gar nicht mehr weiter in die Controller Klasse geht sondern direkt umspringt auf

Frontend_Error_Error - errorAction
Frontend_Error_GenericError - genericErrorAction

Wie gesagt, sobald keine Post Daten befüllt sind, geht alles.

Es reicht aus ein CURL /response -d “” um leere Postdaten zu schicken, um einen Fehler auszulösen.

CURL /response funktioniert

Sobald aber nur der Hauch von Post dabei ist, ist der Controller tabu.

Im Log erscheint leider nichts weiter.

Vielleicht hat schon mal jemand ein ähnliches Problem.

Gruß Tobi

Ich habe noch etwas weiter untersucht…

Im /engine/Library/Enlight/Controller/Action.php in der Methode dispatch kommt er nicht über den Notify vom Enlight_Controller_Action_PreDispatch_Frontend weg.

Also Code:

Shopware()->Events()->notify(
            __CLASS__ . ‘_PreDispatch_’ . $moduleName,
            $args
        );

Da scheint es einen Fehler zu geben und er springt um auf den Frontend_Error

Wenn Ich den Call $this->$action(); vorziehe, läuft alles.

Was könnte den Notify Call verhindern oder zum Fehler machen ?

Vielleicht sehe Ich den Wald vor lauter Bäumen nicht mehr…

Habt Ihr eine Idee ?

Gruß Tobi

Ich habe noch weiter getestet.
Inzwischen habe Ich mal ein Blanko Modul über die SW CLI Tools erstellt und installiert.

Läuft soweit. Aufruf von shopware5/myPlugin gibt die erwartete Hello World Seite des neuen Plugins.

Schicke Ich aber an diese Seite Postdaten, habe Ich das gleiche Spiel wie vorher.

Nur eine nichts sagende Fehlermeldung auf dem Screen und wieder der Ausstieg im oben genannten Event.

Es liegt also nicht an meinem Plugin, sondern scheint ein generelles Problem zu sein.

Oder muss ich die POST Daten erst irgendwie oder wo erlauben ?

In den Grundeinstellungen haben Ich bereits alle Input Filter deaktiviert, aber ohne Erfolg.

Es muss doch möglich sein an ein Plugin Postdaten zu senden.

Gruß Tobi

 

Solange du nicht zeigst was du machst, kann man nicht helfen. Willst du Parameter verarbeiten aus einer Form? Wieso Post-Daten, was verstehst du darunter, wie wendest du das an, etc. etc. ?

Tausend Fragen die man sich nur beantworten kann, wenn du auch mal Code postest.

Evtl ein CSRF Schutz Problem?

https://developers.shopware.com/developers-guide/csrf-protection/

 

 

 

1 Like

Es war in der Tat der CSRF Schutz… Das kappt alles an POST Daten was kommen könnte.