Symfony2 - Контроль доступа
-
25-10-2019 - |
Вопрос
Я хочу установить 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 }
Есть ли у кого -нибудь хорошие примеры, как настроить такое правило?
Решение
Поэтому я получил ответ :) Так что, если у кого -то есть эта проблема, вы также должны позволить _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 }
Другие советы
Не забудьте добавить этот брандмауэр:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false