2015-02-10 103 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路徑,然後未經授權的用戶無法登錄到您的應用程序。