Symfony 2:发生了身份验证异常

时间:2014-03-16 11:47:54

标签: php symfony

我有一个symfony网站,可以在2.0.9版本上运行并开发。我尝试升级到最新版本(2.4.2),但现在每次我尝试访问登录页面时都会出现重定向循环。这是日志所说的内容:

[2014-03-16 12:39:10] security.INFO: Authentication exception occurred; redirecting to authentication entry point (A Token was not found in the SecurityContext.) [] []

这是我的security.yml

security:
encoders:
    Starski\FrontBundle\Entity\User:
        algorithm:                      sha1
        iterations:                     1
        encode-as-base64:               false
role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
    main:
         entity:                        { class: Starski\FrontBundle\Entity\User, property: mail }
firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern:  ^/demo/secured/login$
        security: false

    index:
        pattern:                        ^/
        form_login:
            login_path:                 /login
            check_path:                 /auth
            default_target_path:        /index
            failure_handler:            starski.security.handler
            success_handler:            starski.security.handler

access_control:
    - { path: ^/demo/secured/hello/admin/, roles: ROLE_ADMIN }

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

您可以查看以下内容:

  1. 您的login_path 在您的防火墙后面。这永远不会像这样认证。
    将其添加到您的访问控制中:
    - { path: ^(.*)/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }

  2. login_pathcheck_pathdefault_target_path应该是正确定义的路由名称,而不是绝对网址。

  3. 您有一个从未使用的提供程序('main')。
    尝试将provider: main添加到表单登录身份验证方法。

  4. 要阅读的内容:
    http://symfony.com/doc/current/book/security.html#book-security-common-pitfalls http://symfony.com/doc/current/reference/configuration/security.html#the-login-form-and-process