2015-02-10 17 views
6

Từ sách symfony http://symfony.com/doc/current/book/security.html#security-authorization Tôi đang cố gắng thiết lập xác thực http cơ bản.Xác thực cơ sở bảo mật của Symfony

File security.yml trông như thế này:

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 } 

Nhưng ngay sau khi tôi thêm

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

tôi nhận được một lỗi symfony nói:

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

Tôi đang làm gì sai ? Phải làm gì để sửa nó?

Trả lời

22

thụt đầu dòng của bạn là không tốt

access_control chìa khóa không thể ở dưới firewalls nút

Bạn nên sửa đổi security.yml của bạn như sau

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 cảm ơn bạn @DonCallisto! Bây giờ tôi biết rằng khoảng trắng cũng thực sự quan trọng rất nhiều trong các tập tin '.yml'! Sẽ accepct ngay sau khi tôi có thể – caramba

+1

@caramba: Tất nhiên chúng quan trọng, nếu không tệp sẽ không được phân tích cú pháp – DonCallisto

1

Hãy nhớ rằng nếu bạn yêu cầu ROLE_USER để đường dẫn /login của bạn sau đó người dùng trái phép không thể đăng nhập vào ứng dụng của bạn.

Các vấn đề liên quan