我删除了内存提供程序和DemoBundle,并根据教程添加了数据库提供程序。但我得到InvalidArgumentException
:“您必须至少添加一个身份验证提供程序”。
我的security.yml:
# you can read more about security in the related section of the documentation
# http://symfony.com/doc/current/book/security.html
security:
# http://symfony.com/doc/current/book/security.html#encoding-the-user-s-password
encoders:
AppBundle\Entity\User:
algorithm: bcrypt
# http://symfony.com/doc/current/book/security.html#hierarchical-roles
role_hierarchy:
ROLE_GLOBAL_MODERATOR: ROLE_USER
ROLE_ADMIN: ROLE_GLOBAL_MODERATOR
# http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
providers:
db:
entity:
class: AppBundle:User
property: email
# if you're using multiple entity managers
# manager_name: customer
# the main part of the security, where you can set up firewalls
# for specific sections of your app
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
pattern: ^/
security: false
# with these settings you can restrict or allow access for different parts
# of your application based on roles, ip, host or methods
# http://symfony.com/doc/current/cookbook/security/access_control.html
access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
我还尝试使用YAML可视化工具,以确保我没有搞砸缩进,这是正确的。
答案 0 :(得分:9)
这是因为您还没有配置身份验证提供程序。我的意思是防火墙下的密钥。身份验证提供程序是匿名的,form_login,http_basic等。对于配置提供程序的模式并不重要,但必须至少配置其中一个模式。
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
pattern: ^/
anonymous: ~