5.3.2, unser Freund, der unknown tag "s"

@ronecker schrieb:

So, ich melde mich auch mal wieder.
Heute das Update auf 5.3.4 eingespielt und zack, Fehler ist wieder da.
Der Support ist informiert, mal schauen ob sie was finden können *daumendrück*

Ja, klar ist der wieder da.

Das was du da ausprobiert hattest, war ja eine Core-Anpassung, die wird bei einem Update überschrieben.

Du könntest jetzt wie oben beschrieben entweder das wieder einbauen, die TemplateSecurity deaktivieren oder den konkreten Fehler besorgen (oben beschrieben).

Servus,
also ich kann die Fehlermeldung von haustechnik bestätigen, bei uns sieht sie auch so aus

Es gibt ein Ticket zu dem Vorgang, https://issues.shopware.com/issues/PT-8553

und hier die Fehlermeldung

[26-Oct-2017 11:11:14 Europe/Berlin] PHP Fatal error:  Uncaught SmartyException: directory '[pfad]/engine/Shopware/Plugins/Community/Frontend/SwagPaymentPaypalPlus/Views/frontend/checkout/confirm.tpl' not allowed by security setting in [pfad]/engine/Library/Smarty/sysplugins/smarty_security.php:381
Stack trace:
#0 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir('...')
#1 [pfad]/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL)
#2 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '...')
#3 [pfad]/engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Internal_Resource_Extends->populate(Object(Smarty_Template_Source), NULL)
#4 [pfad]/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Enlight_Components_Snippet_Resource->populate(Object(Smarty_Template_Source), NULL)
#5 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_template.php(460): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '...')
#6 [pfad]/var/cache/production_201710241020/templates/[template]/0f/0c/ee/0f0cee59a1fdd593e05e2a77e74ebe0639e45221.snippet.index.tpl.php(507): Smarty_Internal_Template->decodeProperties(Array, false)
#7 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(161): include('...')
#8 [pfad]/engine/Library/Enlight/View/Default.php(276): Smarty_Internal_TemplateBase->fetch()
#9 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default))
#10 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#11 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#12 [pfad]/engine/Library/Enlight/Event/Handler/Default.php(91): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#13 [pfad]/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#14 [pfad]/engine/Library/Enlight/Controller/Action.php(201): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#15 [pfad]/engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch('confirmAction')
#16 [pfad]/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#17 [pfad]/engine/Shopware/Kernel.php(189): Enlight_Controller_Front->dispatch()
#18 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#19 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#20 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#21 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(344): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
#22 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(189): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#23 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(210): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#24 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#25 [pfad]/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#26 {main}
  thrown in [pfad]/engine/Library/Smarty/sysplugins/smarty_security.php on line 381

 

Der workaround sollte wirklich funktionieren

@DennisG schrieb:

Das Entfernen / ausschalten der SmartySecurity und danach Cach leeren sollte eigentlich helfen. Alternativ sollte es helfen wenn ihr in der

Datei:  /…engine/Library/Smarty/sysplugins/smarty_security.php

die Methode:  isTrustedResourceDir  anpasst und einfach ein return true einbaut.

public function isTrustedResourceDir($filepath)
    {
        return true; // 

Zur weitern Fehleranalyse könnt ihr auch das Plugin von shyim installieren: https://github.com/shyim/whoops-for-shopware

Aktuell gehen wir davon aus das dieser Check vor dem hinzufügen der Template Ordner von Plugins läuft und dadurch der Fehler geworfen wird.

Zwischenfrage - wer nutzt alles die Business Essentials der hier betroffenen?

Soeben kam ein Update raus mit folgendem Changlog:

v 3.0.4
26.10.2017

PT-8544 - Bugfix: Die Template Ordner werden früher registriert um den SmartySecurity Fehler zu verhindern

 

Da wir auf einer Seite KEIN Paypal Plus verwenden, allerdings die Business Essentials auf allen Seiten, wäre hier ein gemeinsamer Nenner…

Für das Plugin Google Services gab es auch ein Update.

Richtig, mit selben Inhalt:

v 2.0.8
26.10.2017

PT-8543 - Bugfix: Die Template Ordner werden früher registriert um den SmartySecurity Fehler zu verhindern

 

Liegt es evtl. doch an Shopware eigenen Plugins?!

Wir haben die BE auch im Einsatz und KEIN PP+ und sind vom „tag s“ betroffen.

Wir werden die Updates demnächst einspielen und dann beobachten.

Im Google-BugIn wird die Registrierung vom Template im postdispatch-event weiter nach vorne geschoben (und sonst passiert nichts), vor den ersten Abbruch durch ein „return“ also.
Sollte man ggf. für eigene Plugins kontrollieren. Frag mich nur, was das Plugin mit dem Pfad am Hut hat, wenn kein Pfad angegeben wird. Ist das ein Workaround um ein tieferes Problem?
 

1 „Gefällt mir“

Soweit ich verstehe, ist es eher so, dass aus einem Controller ein Template aufgerufen wird, was auf diesem Controller nicht registriert ist. Wenn man bspw. Frontend_Checkout registriert und dort sein addtemplatedir macht, dann erzeugt das auch nur dort keinen Fehler. Wenn das Template nun über einen anderen Controller abgerufen wird, dann erzeugt es einen Fehler. Da verschiedene Plugins ja verschiedene Controller hinzufügen, kann die Situation entstehen, dass das Plugin-Template auf einem Controller geladen wird, auf dem es nicht registriert ist, entsprechend knallt es. Dadurch das es nun nach vorne verlager wird, ist es halt auch überall verfügbar.

Die Template Security sorgt dafür, dass das Template auch nur explizit da verwendet werden kann, wo es registriert ist. Wenn man also das Template nur für einen bestimmten Controller registriert, dann kann es auch nur da genutzt werden - unabhängig davon ob es noch irgendwo anders aus einem anderen Controller aufgerufen wird. Zumindest hab ich es so verstanden.

3 „Gefällt mir“

Hallo Moritz,
Danke für Deine Ausführungen, das ergibt soweit Sinn, und sollte eventuell sogar in die Developer Documents übernommen werden, á la Liebe Entwickler „In the wild“ gefunden, bitte besonders beachten ab 5.3

Zu der Umfrage von vc-nm , bei uns sieht es so aus:

  • Bussiness Essentials: ja
  • Google Integration: ja
  • PayPal Plus: ja

 

Zu der Umfrage von vc-nm , bei uns sieht es so aus:

  • Bussiness Essentials: ja
  • Google Integration: ja
  • PayPal Plus: ja

 Bei uns nur BE, kein Google und kein PP+ und trotzdem der Fehler.

1 „Gefällt mir“

Business Essentials und Google haben ja gestern schon ein Update bekommen. Paypal Plus steht noch aus. 

1 „Gefällt mir“

@Moritz Naczenski schrieb:

Business Essentials und Google haben ja gestern schon ein Update bekommen. Paypal Plus steht noch aus. 

Danke für die Info und die Updates :slight_smile: gleich mal installieren!

@octodelta Da wäre die genau Fehlermeldung interessant!

Ja, ich weiß. Aber jetzt kommt erstmal das Wochenende, da arbeite ich lieber mit dem Workaround, damit es sicher läuft. Nächste Woche können wir dann die Updates einspielen und sobald der Fehler auftritt über das genannte Plugin die korrekte Meldung abfangen. Thumb-Up

1 „Gefällt mir“

Ich biete im Rahmen der Fehlersuche einen weiteren Übeltäter an, das Shopware Plugin „SwagVatIdValidation“ 

Im Issue Tracker gibt es bereits ein Ticket dafür
Shopware Issuetracker

 

[02-Nov-2017 10:43:07 Europe/Berlin] PHP Fatal error:  Uncaught SmartyException: directory '[pfad]/engine/Shopware/Plugins/Community/Core/SwagVatIdValidation/Views/frontend/checkout/confirm.tpl' not allowed by security setting in [pfad]/engine/Library/Smarty/sysplugins/smarty_security.php:381
Stack trace:
#0 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir('...')
#1 [pfad]/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL)
#2 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '...')
#3 [pfad]/engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Internal_Resource_Extends->populate(Object(Smarty_Template_Source), NULL)
#4 [pfad]/engine/Library/Smarty/sysplugins/smarty_resource.php(532): Enlight_Components_Snippet_Resource->populate(Object(Smarty_Template_Source), NULL)
#5 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_template.php(460): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '...')
#6 [pfad]/var/cache/production_201710241020/templates/[template]/0f/0c/ee/0f0cee59a1fdd593e05e2a77e74ebe0639e45221.snippet.index.tpl.php(501): Smarty_Internal_Template->decodeProperties(Array, false)
#7 [pfad]/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(161): include('...')
#8 [pfad]/engine/Library/Enlight/View/Default.php(276): Smarty_Internal_TemplateBase->fetch()
#9 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default))
#10 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#11 [pfad]/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#12 [pfad]/engine/Library/Enlight/Event/Handler/Default.php(91): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#13 [pfad]/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#14 [pfad]/engine/Library/Enlight/Controller/Action.php(201): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#15 [pfad]/engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch('confirmAction')
#16 [pfad]/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#17 [pfad]/engine/Shopware/Kernel.php(189): Enlight_Controller_Front->dispatch()
#18 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#19 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#20 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#21 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(344): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
#22 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(189): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#23 [pfad]/vendor/symfony/http-kernel/HttpCache/HttpCache.php(210): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#24 [pfad]/engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#25 [pfad]/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#26 {main}
  thrown in [pfad]/engine/Library/Smarty/sysplugins/smarty_security.php on line 381

 

1 „Gefällt mir“

Wer bei sich selber den 500er Fehler beim Checkout hat, sobald der Fehler auftritt, einfach in die config.php den nachfolgenden Code einfügen und die Fehlermeldung posten.
Im Pfad der Fehlermeldung ist er Übeltäter dann zu erkennen, im obrigen Beispiel ist es „SwagVatIdValidation“

    'phpsettings' => [
        'display_errors' => 1,
    ],
    'front' => [
        'noErrorHandler' => true,
        'throwExceptions' => true,
    ],

Ich wünsche viel Erfolg bei der Käfersuche

Also bei mir gab es seit den Beiden Updates am 29.10.2017 für Google Services v2.0.8 (aktives Plugin) und Backend Bestellungen v 2.0.1(deaktiviertes Plugin) keine Fehlermeldungen mehr.

 

Wir haben dazu bereits auch ein Support Ticket (Pro Plus) offen, dort wurde bisher auch „nur“ empfohlen die Security abzuschalten und das Plugin zu suchen welches den Fehler verursacht. Jetzt sehe ich hier das es an SWAG selber liegt und der Support das scheinbar noch nicht weiß obwohl hier ein 7 Seiten langes Thema existiert :stuck_out_tongue:

Wir haben am Ende auch selber festgestellt das unter anderem das VatID Plugin das Problem verursacht hat, aber nicht nur dieses.

 

 

Für alle Leidensgenossen, PayPal Plus wurde vorhin in Version 1.4.0 im Shop freigegeben, die im Changelog unseren Fehler als behoben nennt
http://store.shopware.com/swag327800489947/paypal-plus.html

Jetzt fehlt nur noch ein Update für das “SwagVatIdValidation” und damit wären alle hier identifizierten Übeltäter aktualisiert.

Wie immer, wenn Ihr Fehler findet, einfach passend die config.php anpassen um das fehlerhafte Plugin zu identifizieren.

Hallo, habe nun auch vor 4 Tagen das Update auf 5.3.4 gemacht. Anfangs lief mein Template nicht richtig, konnte aber den Fehler in meinem Theme finden. Jetzt schien alles zu laufen, bis ich bemerkt habe, dass ein Fehler auftritt, wenn man im Offcanvas Warenkorb auf “Warenkorb bearbeiten” klickt. Folgendes wird ausgegeben:

Fatal error: Uncaught exception 'SmartyException' with message 'directory '/[Pfad]themes/Frontend/MeinTheme' not allowed by security setting' in /[Pfad]engine/Library/Smarty/sysplugins/smarty_security.php:381
Stack trace:
#0 /[Pfad]engine/Library/Smarty/sysplugins/smarty_internal_resource_file.php(33): Smarty_Security->isTrustedResourceDir('/[Pfad]_...')
#1 /[Pfad]engine/Library/Smarty/sysplugins/smarty_resource.php(532): Smarty_Internal_Resource_File->populate(Object(Smarty_Template_Source), NULL)
#2 /[Pfad]engine/Library/Smarty/sysplugins/smarty_internal_resource_extends.php(41): Smarty_Resource::source(NULL, Object(Enlight_Template_Manager), '')
#3 /[Pfad]engine/Library/Enlight/Components/Snippet/Resource.php(76): Smarty_Intern in /[Pfad]engine/Library/Smarty/sysplugins/smarty_security.php on line381

Beim Responsive-Theme ist der Fehler nicht. Muss also irgendwie an meinem Template liegen bzw. an einer Einstellung. An den Plugins liegt es vermutlich nicht, weil ich die meisten testweise deaktiviert habe (z.B. PayPal Plus).

Wie ich gesehen habe, läuft ansonsten alles so ziemlich fehlerfrei.

Gruß

Hansi