2015-02-10 98 views
6

从symfony的书http://symfony.com/doc/current/book/security.html#security-authorization我试图设置基本的http认证。一旦Symfony安全基本认证

security: 
    providers: 
     in_memory: 
      memory: ~ 

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

     default: 
      anonymous: ~ 
      http_basic: ~ 

     access_control: 
      - { path: ^/login, roles: ROLE_USER } 

但我添加

access_control: 
     - { path: ^/login, roles: ROLE_USER } 

我得到一个symfony的错误说:

security.yml文件看起来像这样

InvalidConfigurationException in ArrayNode.php line 309: 
Unrecognized option "0" under "security.firewalls.access_control" 

我在做什么错?该怎么做才能解决它?

回答

22

您的压痕不好

access_control键不能停留在firewalls节点

你应该修改security.yml如下

security: 
    providers: 
     in_memory: 
      memory: ~ 

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

     default: 
      anonymous: ~ 
      http_basic: ~ 

    access_control: 
     - { path: ^/login, roles: ROLE_USER } 
+0

oooh谢谢@DonCallisto!现在我知道''.yml'文件中的空白也很重要!我会尽快接受 – caramba 2015-02-10 07:49:34

+1

@ caramba:当然它们很重要,否则文件无法解析 – DonCallisto 2015-02-10 07:50:19

1

请记住,如果你需要ROLE_USER到您的/login路径,然后未经授权的用户无法登录到您的应用程序。