无法找到路径&QUOT控制器; / login_check" - Symfony2的 [英] Unable to find the controller for path "/login_check" - symfony2

查看:348
本文介绍了无法找到路径&QUOT控制器; / login_check" - Symfony2的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道这是一个常见的​​问题。而关于这一主题的几个问题已张贴。 我已经尝试了所有的解决方案在这些问题建议,但没有奏效。

I know this is a common problem. And several questions on this topic have been posted. I have tried all those solutions recommended in those questions, but none worked.

我发现,如果我把我的 form_login A 防火墙后面出现此问题。但我没有在防火墙的任何额外的层上,在文档中描述的路径应该是简单的。

I found that this problem occurs if I put my form_login behind a firewall. But I'm not having any extra layer in firewall so the path should be simple as described in documentation.

我的 security.yml

# app/config/security.yml
security:
    encoders:
        Joy\JoyBundle\Entity\User:
            algorithm:        sha512
            encode_as_base64: true
            iterations:       1

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        administrators:
            entity: { class: JoyBundle:User, property: username }

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        login:
            pattern:  ^/login
            security: false

        secured_area:
            pattern: ^/
            anonymous: ~
            form_login:
                login_path: login
                check_path: login_check
            logout:
                path:   /logout
                target: /login

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

我的的routing.yml 应用程序/配置

# app/config/routing.yml
login:
    path: /login
    defaults: { _controller: JoyBundle:Security:login }

login_check:
    path: /login_check

joy_hello:
    resource: "@JoyBundle/Resources/config/routing.yml"
    prefix: /

所以我在表演登录检查,同时访问 app_dev.php / 但它显示出在提交登录表单之后pressing的错误。

So I'm performing login check while accessing app_dev.php/ But it's showing that error after pressing submit in login form.

无法找到路径控制器/ login_check。可能是你
  忘了添加在你的路由配置匹配的路由? 404
  未找到 - NotFoundHttpException

Unable to find the controller for path "/login_check". Maybe you forgot to add the matching route in your routing configuration? 404 Not Found - NotFoundHttpException

我试过

login_path: /login
check_path: /login_check

没有工作。什么我失踪?请帮助.....

Didn't work. What I'm missing ?? Please help.....

推荐答案

路线 login_check 不是在防火墙后面,因为 login_check 路由模式的登录匹配防火墙有没有安全性。

The route login_check is not behind the firewall because the login_check route pattern matches the login firewall which has no security.

login:
    pattern:  ^/login     # This matches /login_check
    security: false

解决方案1:更改为

Solution 1: Change this to

login:
    pattern:  ^/login$
    security: false

解决方案2:删除登录防火墙完全并添加此规则 ACCESS_CONTROL

Solution 2: Remove the login firewall altogether and add this rule to access_control

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }

这篇关于无法找到路径&QUOT控制器; / login_check" - Symfony2的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆