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