2015-04-11 3 views
4

Я новичок в Symfony, и я тестирую различные примеры, показанные в Symfony. Тем не менее, я получаю следующее сообщение об ошибке с моей security.yml файлSymfony InvalidConfigurationException для брандмауэра «secure_area»

InvalidConfigurationException в SecurityExtension.php строке 430: Нет аутентификации зарегистрирован прослушиватель для брандмауэра «secured_area».

Мой security.yml файл выглядит следующим образом

security: 
    providers: 
     in_memory: 
      memory: 
       users: 
       foo: 
        password: $2a$12$2nJYjp5DxX0o.ZgGL8ybEOG/MepViC08G1HKVFpjb0BoTDiZd9bCq 
        roles: ROLE_ADMIN 

    firewalls: 
     secured_area: 
      logout: 
       path: /logout 
       target: /example 

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


     default: 
      anonymous: ~ 
      http_basic: ~ 


    access_control: 
     - { path: ^/administer, roles: ROLE_ADMIN } 

    encoders: 
     Symfony\Component\Security\Core\User\User: 
      algorithm: bcrypt 
      cost: 12 

ответ

5

Каждый ключ брандмауэров должен быть определен один или несколько поставщика проверки подлинности (анонимный, form_login и т.д.), если оно не содержит security: false. Ваш security_area ничего не зарегистрировал (выход не выполняется для аутентификации). Чтобы устранить проблему, необходимо удалить secure_area или выйти из системы по умолчанию. Правильное решение зависит от того, чего вы пытаетесь достичь.

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


    default: 
     anonymous: ~ 
     http_basic: ~ 

«Немного» аналогичная проблема security.yml causes InvalidArgumentException: "You must at least add one authentication provider".

+2

Я сталкиваюсь с той же проблемой. OP скопировал свой пример непосредственно из книги Symfony (как и я). При удалении это решает проблему, поскольку она больше не показывает ошибку. Но также не удается продемонстрировать метод выхода, который пытается показать книга. Есть ли решение, которое фактически сделает функцию выхода из системы? – MikeMayer67

+0

Это не случай. Я считаю, что поставщик «logout» не был назначен для работы с базовой аутентификацией. Вы можете использовать его в сочетании с 'form_login' под тем же ключом и т. Д.' Default'. – kba

+1

Я также следую инструкциям по symfony, и он не выходит из системы, по крайней мере, при использовании базовой аутентификации, которую он преподавал мне до сих пор. Вы говорите, что эта функция выхода не работает, пока я не использую ее с form_login или, может быть, с методом базы данных? –