如果我有一个安全的路线,比如说从下面的panel
,Symfony将只允许登录用户访问。Symfony安全重定向到登录页面
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel, role: ROLE_USER }
对于未在其登录总会将其重定向到login_path(我使用FOSUserBundle)用户:
security:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
我在哪里可以禁用或覆盖该重定向?我想直接显示登录表单,而不用重定向用户。
我认为它与AccessDeniedHandlerInterface
有关,但是什么关键需要在security.yml中覆盖?哪里是默认实现?
对于其他情况,我们有DefaultLogoutSuccessHandler, DefaultAuthenticationFailureHandler, DefaultAuthenticationSuccessHandler
,我们可以针对每种情况实施服务,这些服务可以扩展各自的接口并以自定义的方式处理情况。但是,无法找到任何AccessDenied。 Its directory只包含接口。
有什么好处?登录后用户会被重定向回/面板,它不会有什么不同 - 我错过了什么? – ccKep
我想在几条路线上添加一个登录页面。用户想要访问该页面,但他没有登录,所以我向他展示登录表单,并在登录后(使用ajax)将其重定向到面板。 –
要显示登录表单,您应该允许匿名访问。因此,在控制器中检查权限 – Heah