簡體   English   中英

在Symfony 2中找不到多個防火牆的check_path

[英]check_path not found with multiple firewalls in Symfony 2

我正在嘗試在Symfony 2中設置后端和前端防火牆系統。我有兩個登錄表單,一個用於前端,另一個用於管理控制面板。 不同的提供商等。 我的配置如下所示:

security:
    firewalls:
        backend:
            pattern:    ^/admin
            anonymous:  true
            provider:   admin_users
            form_login:
                login_path: /admin/login
                check_path: /admin/login_check
                default_target_path: /admin

        secured_area:
            pattern:    ^/
            provider:   normal_users
            anonymous:  true
            form_login: ~

    access_control:
        - { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin, roles: ROLE_ADMIN }
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

和我的routing.yml:

login:
    path:     /login
    defaults: { _controller: MyFrontendBundle:Default:login }

login_check:
    path:     /login_check

admin_login:
    path:     /admin/login
    defaults: { _controller: MyBackendBundle:Default:login }

admin_login_check:
    path:     /admin/login_check

似乎沒錯,但我遇到以下錯誤:無法找到路徑“/ admin / login_check”的控制器。 也許您忘了在路由配置中添加匹配路由

有任何想法嗎? :)

我在項目中使用的這個解決方案。 希望這也適用於兩種登錄表單。

為控制器添加存根

admin_login_check:
    path:     /admin/login_check
    defaults: { _controller: AcmeDemoBundle:Default:adminLoginCheck }

動作存根。 永遠不會達到此操作,但“找不到控制器”錯誤將消失。

// src/Acme/DemoBundle/Controller/DefaultController.php
public function adminLoginCheckAction()
{
    return $this->redirect($this->generateUrl('admin_login'));
}

你的網址映射似乎是正確的,

請檢查管理控制器中是否有正確的check_path (/admin/login_check)

要么

嘗試在access_control下添加login_check,如下所示,

- { path: ^/admin/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }

當我嘗試使用具有重疊url模式的防火牆時,我遇到了類似的問題。 第一個防火牆沒有check_path(我在第一個防火牆中使用http_basic)而在第二個firwall中我使用的是form_login。 我不得不改變URL映射。

刪除“/”可能不錯,所以你只有:

login_path: admin/login
check_path: admin/login_check
default_target_path: admin

讓模式以它的方式歸屬。 這實際上是我的security.yml樣子,並解釋了路徑問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM