Jos*_*ter 5 php symfony symfony-2.1
我无法在symfony上进行用户身份验证.我login_path工作正常,但check_path发生故障.我指定的路径让人着名Unable to find the controller for path "/login_check". Maybe you forgot to add the matching route in your routing configuration?
我看了看其他帖子,他们似乎都在做我正在做的事情.我对symfony很新,并且难以理解这些概念,所以我非常感谢一些帮助.
我正在使用Symfony 2.1,如果这有所作为.
我相信我已经正确配置了所有内容:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
Site\CommonBundle\Entity\User: plaintext
role_hierarchy:
ROLE_LIGHT: ROLE_LIGHT
ROLE_ADMIN: [ROLE_LIGHT, ROLE_USER]
ROLE_SUPER_ADMIN: [ROLE_LIGHT, ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
database:
entity: { class: SiteCommonBundle:User }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login_firewall:
pattern: ^/(login|logout|login_check)
anonymous: ~
secured:
pattern: ^/secured/
form_login:
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /
access_control:
- { path: ^/secured/, roles:ROLE_LIGHT }
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
Run Code Online (Sandbox Code Playgroud)
common_login:
pattern: /login
defaults: { _controller: SiteCommonBundle:Default:login }
common_login_check:
pattern: /login_check
Run Code Online (Sandbox Code Playgroud)
l3l*_*3l0 11
该login_check路径必须是你的安全区域之内.
在你的代码中,Pattern定义了一个前缀'/ secured',所以你的login_check也需要以'/ secured'为前缀.
在您的情况下,安全防火墙定义所有路径都以前缀开头,/secured但登录检查路径的路径是/login_check.因此防火墙无法处理表单.
我认为你也应该从login_firewall中删除它.