ApiAware Zugriffsrechte über Api Sicherheitsupdate 6.3.5.1

Hallo zusammen,

mit dem Sicherheitsupdate 6.3.5.1 wurde die Sicherheit der API verbessert. Es muss nun explizit angegeben werden welche Informationen über die API ausgesteuert werden. Hierzu gibt es einen Link:

Mein aktuelles Problem ist nun das ich eine externe Anwendung habe die sich über die Sales-Channel-Api (welche ab 6.4.0.0 komplett abgeschaltet wird) Informationen zieht. In dem Beispiel oben im Link wird erklärt wie man mit ApiAware die Einschränkung aufheben kann. Das klappt auch alles soweit wenn ich die Anpassungen direkt in der Datei vornehme.

vendor/shopware/core/Framework/DataAbstractionLayer/Field/Field.php

(hinzufügen der SalesChannelApiSource::class was bewirkt das in der SalesChannelApi wieder alle Felder inkl. Entities zur verfügung stehen.)

    public function __construct(string $propertyName)
    {
        $this->propertyName = $propertyName;

        $this->addFlags(new ApiAware(AdminApiSource::class, SalesChannelApiSource::class));
    }

Ich würde nun gerne über ein Plugin das setzen/überschreiben realisieren. Da die class Field eine abstract class ist lässt sich diese im Plugin nicht so einfach überschreiben. Hier fehlt mir aktuell die Idee wie ich das am besten realisieren könnte. Dann stell ich mir die Frage ob es möglich ist auch nur bestimmte Teile frei zu geben anstatt wieder global die Sicherheitslücke zu öffnen.

 

 

Falls das jemand als Hotfix verwenden möchte, im oberen Bereich nicht vergessen die SalesChannelApiSource einzubinden.

use Shopware\Core\Framework\Api\Context\SalesChannelApiSource;