【问题标题】:Symfony InvalidConfigurationException for firewall "secured_area"防火墙“secured_area”的 Symfony InvalidConfigurationException
【发布时间】:2015-06-17 04:33:14
【问题描述】:

我是 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

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    每个防火墙密钥必须定义一个或多个身份验证提供程序(匿名、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"

    【讨论】:

    • 我遇到了完全相同的问题。 OP 直接从 Symfony 书中复制了他的示例(我也是如此)。删除它可以解决问题,因为它不再显示错误。但它也未能演示本书试图展示的注销方法。是否有真正使注销功能起作用的解决方案?
    • 并非如此。我相信logout 提供者没有被指定使用基本身份验证。您可以在同一键下与form_login 结合使用它等default
    • 我也在关注 symfony 教程,至少在使用它迄今为止教给我的基本身份验证时它不会注销。你是说这个注销功能在我将它与 form_login 或数据库方法一起使用之前无法使用??
    【解决方案2】:

    您需要删除 secured_area,然后将您的 logout 块移动到 default

    例如: #config/packages/security.yaml

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

    在 config/routes.yaml

    logout:
        path: /logout
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多