2015-02-18 3 views
3

Я конфигурированию уровня безопасности для формы входа на Symfony2, но эта ошибка продолжает появление:check_path для метода авторизации не совпадает с шаблоном брандмауэра

InvalidConfigurationException: Invalid configuration for path 
"security.firewalls.gestor_area": The check_path "^/ES/gestor/login_check" 
for login method "form_login" is not matched by the firewall pattern "^/ES/gestor". 

Соответствующая часть security.yml является:

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

    gestor_area: 
     pattern: ^/ES/gestor 
     http_basic: ~ 
     provider: db 
     form_login: 
      login_path: weblogin_login 
      check_path: ^/ES/gestor/login_check 

    access_control: 
      - { path: ^/ES/gestor, roles: ROLE_ADMIN } 
      - { path: weblogin_login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/ES/gestor/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
      - { path: ^/PT/project, roles: ROLE_ADMIN } 
      - { path: ^/FR/project, roles: ROLE_ADMIN } 
      - { path: ^/CL/project, roles: ROLE_ADMIN } 
      - { path: ^/ES/project, roles: ROLE_ADMIN } 
      - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY } 

Сделано это полностью работает HTTP аутентификация - также отображает форму входа, но при попытке аутентификации в форме входа он выходит из строя, или просто отобразить эту ошибку.

Как настроить маршрут в соответствии с шаблоном брандмауэра?

UPDATE: Добавлены пути к контролю доступа, по-прежнему не работают, такая же ошибка.

+3

Необходимо также добавить '- {path: ^/your-login-path, роли: IS_AUTHENTICATED_ANONYMOUSLY}' и '- {path: ^/your-login-check-path, role: IS_AUTHENTICATED_ANONYMOUSLY}' к доступу чтобы получить доступ к этим маршрутам. –

+0

обновите свой пост, удалите комментарий и сообщите нам, что не работает. –

ответ

-2

После Symfony Best Practices: запись

Если у вас есть два законно различных систем аутентификации и пользователей (например, форма входа для основного сайта и лексемы системы только ваш API), мы рекомендуем иметь только один брандмауэр с включен анонимный ключ.

Так что ваши настройки конфигурации может выглядеть так:

firewalls: 
    secured_area: 
     pattern: ^/ 
     anonymous: true 
     form_login: 
      check_path: security_login_check 
      login_path: security_login_form 

Посмотрите на главу для получения дополнительной информации

+1

Это никоим образом не отвечает на вопрос. –

3

Там опечатка в:

check_path «^/ES/gestor/login_check "

Этот check_path должен быть простым текстовым путем, а не шаблоном регулярного выражения. т. е. Оставьте символ ^ в вашем случае.

+0

для использования параметров в url вы можете использовать существующие псевдонимы маршрутов, например app_login_check –

 Смежные вопросы

  • Нет связанных вопросов^_^