Symfony2 - Контроль доступа - PullRequest
2 голосов
/ 16 марта 2011

Я хочу установить access_control для всего, но не для шаблона /login (и, возможно, еще несколько маршрутов).

Поэтому я сначала установил путь для входа в систему с ролью IS_AUTHENTICATED_ANONYMOUSLY.Затем я установил путь для всего, с ролью IS_AUTHENTICATED_FULLY.

Проблема в том, что форма входа теперь генерируется дважды.Я вижу два поля входа, две кнопки отправки и т. Д.

Если я удаляю правила access_control, которых у меня нет, и задаю только один путь, например /blog/.* и с ролью: IS_AUTHENTICATED_FULLY, это работаетхорошо, форма входа в систему такая, как должна быть.

Так что моя конфигурация " вам нужно проходить аутентификацию везде, кроме здесь ", не работает.Я пытался сделать, когда форма входа в систему генерируется дважды:

access_control:
   - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
   - { path: /.*, role: IS_AUTHENTICATED_FULLY }

У кого-нибудь есть какие-нибудь хорошие примеры, как настроить такое правило?

Ответы [ 2 ]

12 голосов
/ 16 марта 2011

Итак, я получил ответ :) Так что, если у кого-то возникнет эта проблема, вы также должны разрешить _wdt и _profiler анонимный доступ:)

 access_control:

       - { path: /_wdt/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /_profiler/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /.*, role: IS_AUTHENTICATED_FULLY }

5 голосов
/ 25 апреля 2012

Не забудьте добавить этот брандмауэр:

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