Symfony3 / FOSUserBundle : /login/ 循环

Symfony3 / FOSUserBundle : /login/ loop

我的网站是 运行 Symfony 3.4,我只是安装了 FOSUserBundle 来管理 login/authentification。我关注了 this tutorial,但一切都不尽如人意。作为记录,我可以访问我的主页视图 (/app_dev.php/) 和我的登录页面视图 (/app_dev.php/login) 但在我的 security.yml :

我不明白为什么这条路径会形成无限循环。 下面是我的安全 yaml 配置:

security:

    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

    providers:
        fos_userbundle:
                id: fos_user.user_provider.username

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager

            logout:       true
            anonymous:    false

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

在我的 dev.log 中,这些行是循环的:

[2018-01-15 10:54:24] request.INFO: Matched route "fos_user_security_login". {"route":"fos_user_security_login","route_parameters":{"_controller":"FOS\UserBundle\Controller\SecurityController::loginAction","_route":"fos_user_security_login"},"request_uri":"http://www.mycompany.com/app_dev.php/login","method":"GET"} [] [2018-01-15 10:54:24] security.INFO: An AuthenticationException was thrown; redirecting to authentication entry point. {"exception":"[object] (Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException(code: 0): A Token was not found in the TokenStorage. at /var/www/custom_pim/vendor/symfony/symfony/src/Symfony/Component/Security/Http/Firewall/AccessListener.php:51)"} [] [2018-01-15 10:54:24] security.DEBUG: Calling Authentication entry point. [] []

你必须改变anonymous:

anonymous: true

我已经检查了我的设置和你的设置,你唯一不同的是

anonymous: false

我已将其设置为 true(我认为这是默认值)。也许尝试更改它并报告回来,我手头有一个非常新的 FOSUserBundle 项目要检查

我用下面的代码解决了我的问题:

防火墙:

main:
    pattern: ^/
    form_login:
        provider: fos_userbundle
        default_target_path: /
        csrf_token_generator: security.csrf.token_manager
    logout:
        target: fos_user_security_login
    anonymous:    true

access_control:

- { path: ^/$, role: ROLE_USER }