防火墙的Symfony InvalidConfigurationException" secured_area"

时间:2015-04-11 13:53:57

标签: 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

2 个答案:

答案 0 :(得分:5)

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

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


    default:
        anonymous: ~
        http_basic: ~

“一点点”类似的问题security.yml causes InvalidArgumentException: "You must at least add one authentication provider"

答案 1 :(得分:0)

您需要删除secured_area,然后将您的注销区块移至默认

例如: #config/packages/security.yaml

接下来,您需要为此 URL 创建路由(但不是控制器):

在 config/routes.yaml

logout:
    path: /logout