Методы Secure Controller с использованием XML вместо аннотаций в Symfony 2 - PullRequest
0 голосов
/ 29 декабря 2011

Я сейчас разрабатываю пакет, который в конечном итоге я хотел бы распространять как сторонний пакет.В этом комплекте у меня есть контроллеры, методы которых мне нужно защитить, например, для входа в систему пользователей и т. Д.

Я нашел два метода для защиты этих маршрутов, один из которых является аннотациями, а другой -проверка вручную в самой логике файлового контроллера.На мой взгляд, оба этих метода не разделены. Требование редактирования файлов для изменения роли, если разработчики настроили роли, на мой взгляд, плохо.

Я хотел бы перенести эту конфигурацию вXML-файл, но я не нашел ни документации, ни примеров для этого.

Если в настоящее время это невозможно, что бы вы предложили для принудительного применения безопасных маршрутов, но при этом их можно было легко редактировать и обновлять?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

JMSSecurityExtraBundle (пакет, который обрабатывает управление доступом к методу) можно настроить с помощью аннотаций или (в основной ветви) путем добавления выражений в конфигурацию пакета в config.yml / config.xml:

jms_security_extra:
    method_access_control:
        "ProductManager::bulkDelete$": "hasRole('ROLE_ADMIN')"

Если вы хотите использовать эту технику для защиты контроллеров, вам также потребуется установить JMSDiExtraBundle.

0 голосов
/ 29 декабря 2011

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

PS Просто небольшое замечание: любая разработка, которая будет использовать ваш пакет, не понадобится (и не должны) редактировать что-либо внутри вашего фактического кода пакета независимо от того, как вы решите его настроить, вместо этого они расширят ваш пакет и сконфигурируют расширение (см., как FOSUserBundle настроен для справки)

PS Лол, в основном тот же ответ, что и Крис: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...