我正在尝试在 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'));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)