Symfony2 ACL - kann nicht mehrere Benutzerquellen für einen einzelnen Anbieter festlegen

8

Ich versuche herauszufinden, warum ich mehrere Benutzeranbieter nicht zu einem einzigen Anbieter zusammenstellen kann. Momentan konfiguriere ich ACL. Für die Benutzer-Provider möchte ich ein paar "fest codierte" Benutzer und Benutzer haben, die aus einer Datenbank geladen werden.

Wenn Sie die Dokumentation lesen, wird angegeben, dass Sie nicht benötigt werden um zwei Benutzeranbieter zu haben - einen für die Benutzer in_memory und einen für die Benutzer database . Sie sollten in der Lage sein, sie zu einem einzigen Benutzeranbieter zu kombinieren (was ich versuche).

Die vorgeschlagene Konfiguration lautet:

%Vor%

Meine Konfiguration ist:

%Vor%

Leider bekomme ich diese Ausnahme:

%Vor%

Wenn ich jedoch zwei verschiedene Anbieter anlege und sie verkette, funktioniert das ohne Probleme. Ich kann nicht herausfinden, warum das passieren würde? Es ist deutlich in der Dokumentation angegeben - you can accomplish this even more easily by combining the two sources into a single provider .
Was fehlt mir hier?

    
tftd 18.11.2012, 16:47
quelle

2 Antworten

3

Warum verketten Sie keine Anbieter? Die Dokumentation, auf die Sie verweisen, gibt an, dass Sie mehrere Benutzeranbietern " ... verwenden können, indem Sie einen neuen Anbieter erstellen, der die beiden zusammen verknüpft ".

Ссылка

Jeder Authentifizierungsmechanismus (z. B. HTTP-Authentifizierung, Formularanmeldung usw.) verwendet genau einen Benutzeranbieter und verwendet standardmäßig den ersten deklarierten Benutzeranbieter. Was aber, wenn Sie einen wenigen Benutzer über die Konfiguration und den Rest Ihrer Benutzer in der Datenbank angeben möchten? Dies ist möglich, indem Sie einen neuen Anbieter erstellen, der die beiden zusammen verknüpft.

Jetzt verwenden alle Authentifizierungsmechanismen chain_provider , da es sich um den ersten angegeben hat. Der chain_provider versucht wiederum, den Benutzer von den in_memory und user_db -Anbietern zu laden.

Alles, was Sie tun müssen, ist einen Kettenanbieter einzurichten.

%Vor%     
Dovydas Bartkevičius 09.01.2014, 21:10
quelle
-2

Welche Symfony-Version verwenden Sie? Wenn 2.0, ist in der Dokumentation 2.0 die Konfiguration etwas anders:

%Vor%

Beachten Sie, dass die memory Taste fehlt.

    
Marius Balčytis 08.12.2012 23:26
quelle

Tags und Links