-->

security.yml导致InvalidArgumentException:“你必须至少添加一个身

2019-10-22 09:32发布

我删除了内存供应商和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可视化工具,以确保,我没有搞砸缩进,这是正确的。

Answer 1:

这是因为你没有配置身份验证提供呢。 我的意思是在防火墙的关键。 身份验证提供匿名,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: ~


文章来源: security.yml causes InvalidArgumentException: “You must at least add one authentication provider”