我正在尝试在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 }
Run Code Online (Sandbox Code Playgroud)
和我的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
Run Code Online (Sandbox Code Playgroud)
似乎没错,但我遇到以下错误:无法找到路径"/ admin/login_check"的控制器.也许您忘了在路由配置中添加匹配路由
有任何想法吗?:)
我在我的项目中使用这个解决方案。希望这也适用于两个登录表单。
添加控制器存根
admin_login_check:
path: /admin/login_check
defaults: { _controller: AcmeDemoBundle:Default:adminLoginCheck }
Run Code Online (Sandbox Code Playgroud)
动作存根。此操作永远不会达到,但“找不到控制器”错误将会消失。
// src/Acme/DemoBundle/Controller/DefaultController.php
public function adminLoginCheckAction()
{
return $this->redirect($this->generateUrl('admin_login'));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1116 次 |
最近记录: |