Fehler in den Formularen nach Sicherheitsfix Plug-In

Guten Tag,

ich habe heute in einen Shop (Version 5.1.3) den Sicherheitsfix SwagSecurityHotFix201701 als Plug-In gespielt.

Danach geht leider keins der Formulare wie z.B. das Kontaktformluar mehr, es wird dabei folgender Fehler ausgegeben:

 

Internal error: Failed to retrieve the default value in Enlight/Hook/ProxyFactory.php on line 284

Stack trace:

 #0 Enlight/Hook/ProxyFactory.php(284): ReflectionParameter-\>getDefaultValue() #1 Enlight/Hook/ProxyFactory.php(190): Enlight\_Hook\_ProxyFactory-\>generateMethods('Shopware\_Contro...') #2 Enlight/Hook/ProxyFactory.php(137): Enlight\_Hook\_ProxyFactory-\>generateProxyClass('Shopware\_Contro...') #3 Enlight/Hook/HookManager.php(146): Enlight\_Hook\_ProxyFactory-\>getProxy('Shopware\_Contro...') #4 Enlight/Controller/Dispatcher/Default.php(501): Enlight\_Hook\_HookManager-\>getProxy('Shopware\_Contro...') #5 Enlight/Controller/Front.php(226): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #6 Shopware/Kernel.php(153): Enlight\_Controller\_Front-\>dispatch() #7 vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #8 Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #9 vendor/symfony/http-kernel/HttpCache/HttpCache.php(449): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true) #10 vendor/symfony/http-kernel/HttpCache/HttpCache.php(349): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>fetch(Object(Symfony\Component\HttpFoundation\Request), true) #11 Shopware/Components/HttpCache/AppCache.php(178): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>lookup(Object(Symfony\Component\HttpFoundation\Request), true) #12 vendor/symfony/http-kernel/HttpCache/HttpCache.php(213): Shopware\Components\HttpCache\AppCache-\>lookup(Object(Symfony\Component\HttpFoundation\Request), true) #13 Shopware/Components/HttpCache/AppCache.php(114): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #14 shopware.php(101): Shopware\Components\HttpCache\AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #15 {main}

 

Der Cache wurde mehrfach geleert und wenn das Plug-In inaktiv ist, wird alles normal angezeigt. Vielleicht hat ja jemand einen Ansatz für mich. Danke.

Hast du die forms/index.tpl überschrieben?
Funktioniert es, wenn du die Anpassung rausnimmst?

Der Shop nutzt zwar ein eigenes Template aber da wurde nichts überschrieben.

Auch bei den Plug-Ins kann ich mir nicht vorstellen das eines darauf zugreift, außer vielleicht das Ticket-System von Shopware.

Moin,

so ohne weiteres kann man da erstmal nicht viel sagen, aktiviere doch mal das Standardtemplate und schau, ob es dann immer noch auftritt und deaktiviere ggf mal andere Plugins und schau, ob das Problem dann immer noch auftritt.

_

Viele Grüße
Patrick

Kannst du mir mal die Zugangsdaten (Backend, PHPmyAdmin, FTP) an forum@shopware.de schicken?
Soweit wir das bisher wissen, ist die Ursache eine Kombination aus Ticketsystem, Einstellungen/Anpassungen und dem Fix.

Hallo B_Bruns,

bitte ändere folgende Bedingung etwa Zeile 289 in der Datei engine/Library/Enlight/Hook/ProxyFactory.php (shopware/ProxyFactory.php at v5.2.15 · shopware/shopware · GitHub):

Von:

if ($rp->isOptional()) {
    $params .= ' = ' . str_replace("\n", '', var_export($rp->getDefaultValue(), true));
}

Nach

if ($rp->isOptional() && $rp->isDefaultValueAvailable()) {
    $params .= ' = ' . str_replace("\n", '', var_export($rp->getDefaultValue(), true));
}

 Mir ist noch nicht ganz klar, warum dieser Fehler nur sporadisch bei manchen Systemen auftritt, aber wir arbeiten an einer Lösung.

Viele Grüße,
Benjamin Cremer

2 Likes

Danke für die schnelle Hilfe, die Änderungen in der ProxyFactory haben den Fehler behoben. 

Wir können bestätigen, dass die Lösung funktioniert hat, vielen Dank für die tolle Unterstützung!