Wenn ich eine sichere Route habe, sagen wir wie panel
von unten, wird Symfony den Zugriff nur für angemeldete Benutzer erlauben.Symfony Sicherheitsumleitung zur Anmeldeseite
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel, role: ROLE_USER }
Für Anwender, die darin nicht angemeldet sind, werden sie immer auf die login_path umleiten (Ich verwende FOSUserBundle):
security:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
Wo kann ich diese deaktivieren oder außer Kraft setzen umleiten? Ich möchte ein Login-Formular direkt anzeigen, ohne den Benutzer umzuleiten.
Ich glaube, es hat mit AccessDeniedHandlerInterface
zu tun, aber welcher Schlüssel muss in security.yml überschrieben werden? Und wo ist die Standardimplementierung?
Für andere Situationen haben wir DefaultLogoutSuccessHandler, DefaultAuthenticationFailureHandler, DefaultAuthenticationSuccessHandler
und wir können einen Service für jede dieser Situationen implementieren, der ihre jeweiligen Schnittstellen erweitert und die Situation in einer benutzerdefinierten Weise behandeln kann. Für AccessDenied kann jedoch nichts gefunden werden. Its directory enthält nur die Schnittstelle.
Was ist der Vorteil? Nach dem Einloggen würde der Benutzer zurück zu/Panel umgeleitet werden und es würde sich nicht anders anfühlen - was fehlt mir? – ccKep
Ich möchte eine Login-Seite auf ein paar Routen hinzufügen. Der Benutzer möchte auf die Seite zugreifen, aber er ist nicht eingeloggt, also stelle ich ihm das Login-Formular vor und nach der Anmeldung (mit Ajax) wird er zum Panel weitergeleitet. –
um ein Login-Formular anzuzeigen, sollten Sie auch anonymen Zugriff erlauben. Überprüfen Sie daher die Berechtigung in einer Steuerung, zum Beispiel – Heah