2012-10-23 32 views
11

Tôi đã tải xuống và cài đặt phiên bản tiêu chuẩn Symfony2. Tôi đã thực hiện tất cả các bước được nêu chi tiết trong các github readme để loại bỏ AcmeBundle phục vụ như là một bản demo cho khuôn khổ. Khi cố gắng để truy cập vào giao diện điều khiển để kiểm tra các tuyến đường của tôi tăng gấp đôi:Symfony2 - Xóa kết quả demo AcmeBundle trong lỗi nhà cung cấp bảo mật

$ php app/console router:debug 

tôi nhận được lỗi sau:

[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException] 
The child node "providers" at path "security" must be configured. 

Khi tôi lấy lại security.providers trong tập tin security.yml tôi, vì vậy tôi là trái với:

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     in_memory: 
      memory: 
       users: 
        user: { password: userpass, roles: [ 'ROLE_USER' ] } 
        admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 

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

    access_control: 
     #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 
     #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 } 

tôi nhận được một khác nhau nhưng tương tự lỗi:

[InvalidArgumentException]       
You must at least add one authentication provider. 

Tôi không biết phải làm gì để khắc phục. Bất kỳ giải pháp?

Trả lời

20

Bạn cần cung cấp, giống như cấu hình này:

jms_security_extra: 
    secure_all_services: false 
    expressions: true 

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     in_memory: 
      memory: 
       users: 
        user: { password: userpass, roles: [ 'ROLE_USER' ] } 
        admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } 

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

     login: 
      security: false 

     secured_area: 
      anonymous: ~ 

    access_control: 
     #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 
     #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 } 
+0

+1 nhưng bạn không nhất thiết phải xác định nhà cung cấp nếu bạn không có. Tôi đoán lý do mà gói bảo mật yêu cầu điều này là vì nếu bạn không cần bảo mật, bạn không cần gói. – Alex

+4

Tài liệu thực sự cần được cập nhật để phản ánh điều này. Câu trả lời của bạn khác xa so với việc xóa/xóa các mục đó hoàn toàn. –

+3

Đã thêm sự cố trên Github: https://github.com/symfony/symfony-standard/issues/434 – Alex

10

Đối với tôi, các tập tin tối thiểu tôi có thể có được mà làm việc mà không ngoại lệ là:

security: 
    firewalls: 
     anonymous: 
      anonymous: ~ 

    providers: 
     in_memory: 
      memory: 

Symfony 2.3.3.

+1

cũng hoạt động với 2.4.1. do đó, không bình luận ra việc nhập khẩu trong config.yml – jah

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