如果我有一個安全的路線,比如說從下面的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