Порог вхождения в Symfony или закрыть URL на basic auth
12 марта 2018
Мне не очень нравятся инструменты с очень высоким порогом вхождения. Не потому, что я сам не могу с ними работать (могу), а потому как на какие-то мелочи команда тратит непомерно много времени.
Я был наслышан про security bundle и то, как его не осиливают разработчики, но это было давно. За последние пару лет вышел Symfony 4, который представлялся как мега-простой и супер-быстрый, да и в самом security вроде изменений было много на тему упрощения. Но нет, оказывается, сильно лучше не стало.
Задачка — закрыть URL на простую basic-аутентификацию с фиксированным логином-паролем. Никаких пользователей в проекте нет. Куда может быть проще? Начинаем искать, но попадаются только описания, как это сделать когда пользователи всё-таки есть плюс принятый ответ на StackOverflow, который гласит, что сделать этого нельзя.
Собственно, всё. Финиш. Большинство на этом отваливается потому как лезть в исходники и тратить время на то, чтобы понять, как сочинить конфиг ниже, пробиваясь сквозь абстракции и соединяя воедино фаервол, провайдер и энкодер станет очень небольшое количество разработчиков.
security: providers: api_users_in_memory: memory: users: test: password: qwerty encoders: Symfony\Component\Security\Core\User\User: plaintext firewalls: api: pattern: ^/api stateless: true http_basic: provider: api_users_in_memory
Мораль: гибко сделать не так сложно. Просто сделать нелегко.
Комментарии RSS по email OK
Можно, кстати, захэшировать этот пароль командой
тогда совсем кошерно будет
Разве большинство не попробует посетить основную страницу документации по секьюрности symfony.com/doc/current/security.html
Мне кажется тут дано исчерпывающее руководство, как настроить http basic authentication
Судя по вопросу на StackOverflow и другим результатам поиска, нет.
Полностью не согласен со статьей. По ссылке выше, после прочтения, этот конфиг строится без труда.
Макс, почти. В официальной доке мешает упоминание пользователя. Особенно сбивает с толку факт его аутентификации и скриншот панельки (хранение в сессии). Думаю, именно поэтому возникают подобные вопросы. Как решение вижу упомянуть
stateless
прямо в основной доке.После вашего описания вспомнилась пару дней назад прочитанная статья о подходе к разработке ПО Чем хуже, тем лучше
Похоже, но нет. Там про простоту реализации в ущерб всему остальному.
Skyeng на symphony?)
Denis, частично да. Там много всего: Yii 1.1, Symfony, nodejs и так далее...
Может, пока не поздно, стоит попробовать обратить их в нашу веру? )))
В веру в прагматизм и баланс? Судя по общению с Fabien-ом, лично у него она присутствует в полном объёме.
"в нашу веру" - я имел в виде переписывать проект Skyeng не на Symfony, а переписать на Yii2.
LAV45, дело в том, что Skyeng — это не один проект и не одна команда. Вот сейчас смотрю на git и там 194 репозитория, из них как минимум половина — продакшн-проекты. Там уже есть и Yii и Symfony и нода и Ruby ещё много чего...
Последний раз читал документацию по security лет 5-6 назад , практически сразу, как symfony2 релизнулась. До сих пор помню, как сделать то, чего ты хочешь. Тут точно порог вхождения виноват?
Именно поэтому я и предпочитаю продукты от Zend, ибо там не нужно искать одно единственное правильное решение. Тебе просто предоставляют какой-то пакет, с каким-то функционалом. А как ты его будешь использовать - дело твое. Конечно, это все равно не спасает от просмотра "кишок", зато ты сам волен строить свою архитектуру.
Я так и не смог осилить, как сделать аутентификацию пользователя после регистрации. security-bundle это жесть, такое чувство, что разработчики этого специально издеваются над людьми.
Спасибо большое! Мучался с этой херней час пока не наткнулся на Вашу статью.