Symfony-Sicherheit gibt Antwort 401 statt Umleitung zurück

8

Ich schreibe eine Ajax-Anwendung mit Ajax-Authentifizierung und jetzt benutze ich die Symfony-Sicherheitskomponente in Silex, um Authentifizierung / Autorisierung zu behandeln.
Bei einem einfachen Test mit einer einfachen Konfiguration gehe ich zu einem geschützten Bereich durch die Firewall und die Antwort, die ich bekomme, ist eine Umleitung auf die /login Seite, aber was ich in meiner App brauche, ist eine 401 Antwort mit möglichen zusätzlichen Informationen (in Kopfzeilen) oder json body), wie Sie sich anmelden.

%Vor%

BEARBEITEN: Ich habe einen Hinweis, aber ich bin mir nicht sicher, wie ich ihn verwenden soll. Implementieren eines Einstiegspunkts mit AuthenticationEntryPointInterface Ich kann der API mitteilen, wie sie nicht authentifizierte Anfragen beantwortet und dem Benutzer die zur Authentifizierung benötigten Anweisungen gibt. Das könnte meine 401 Antwort mit Login-Anweisungen sein.

    
olanod 06.09.2013, 16:40
quelle

2 Antworten

5

Was Sie brauchen, ist ein AuthenticationEntryPoint-Handler. Einfaches Beispiel:

%Vor%

Registrieren Sie die Klasse als Service in der Datei services.xml:

%Vor%

und machen Sie eine kleine Änderung in der Datei security.yml:

%Vor%     
panK 08.01.2014 12:12
quelle
1

Ich konnte den Standard-Einstiegspunkt für den "Formular" -Typ unter der "api" -Firewall wie folgt überschreiben:

%Vor%

Dann ist es nur eine Frage der Implementierung des AuthenticationEntryPointInterface:

Ссылка

Sehen Sie sich die Symfony-Implementierung an, um eine Idee zu bekommen:

%Vor%

Es lohnt sich auch, den Silex-Sicherheitsdienstanbieter zu überprüfen, um zu sehen, wie er das in "security.entry_point.form._proto" als Standardimplementierung einfügt.

%Vor%     
ooXei1sh 26.04.2014 14:40
quelle