防火墙"secured_area"的Symfony InvalidConfigurationException

Isa*_*sme 4 php symfony

我是Symfony的新手,我正在尝试Symfony中显示的不同示例.但是,我的security.yml文件出现以下错误

SecurityExtension.php第430行中的InvalidConfigurationException:没有为防火墙"secured_area"注册身份验证侦听器.

我的security.yml文件看起来像这样

security:
    providers:
        in_memory:
            memory:
              users:
                foo:
                  password: $2a$12$2nJYjp5DxX0o.ZgGL8ybEOG/MepViC08G1HKVFpjb0BoTDiZd9bCq
                  roles: ROLE_ADMIN

    firewalls:
        secured_area:
            logout:
                path: /logout
                target: /example

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


        default:
            anonymous: ~
            http_basic: ~


    access_control:
        - { path: ^/administer, roles: ROLE_ADMIN }

    encoders:
        Symfony\Component\Security\Core\User\User:
            algorithm: bcrypt
            cost: 12
Run Code Online (Sandbox Code Playgroud)

kba*_*kba 5

除非包含,否则每个防火墙密钥必须已定义一个或多个身份验证提供程序(匿名,form_login等)security: false.您的secured_area没有注册任何内容(注销不用于身份验证).删除secure_area或在默认密钥下移动注销应该可以解决问题.正确的解决方案取决于您要实现的目标.

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


    default:
        anonymous: ~
        http_basic: ~
Run Code Online (Sandbox Code Playgroud)

一个"一点点"类似的问题security.yml导致InvalidArgumentException:"您必须至少添加一个身份验证提供程序".

  • 我正在遇到完全相同的问题.OP直接从Symfony书中复制了他的例子(就像我一样).删除它可以解决问题,因为它不再显示错误.但它也无法证明该书试图展示的注销方法.是否有解决方案实际上使注销功能有效? (3认同)