<rmcreative>

RSS

Порог вхождения в Symfony или закрыть URL на basic auth

12 марта

Мне не очень нравятся инструменты с очень высоким порогом вхождения. Не потому, что я сам не могу с ними работать (могу), а потому как на какие-то мелочи команда тратит непомерно много времени.

Я был наслышан про 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

  1. №11201
    Col. Shrapnel
    Col. Shrapnel 12 марта 2018 г., 18:20:33

    Можно, кстати, захэшировать этот пароль командой

    security:encode-password
    

    тогда совсем кошерно будет

  2. №11202
    Max
    Max 12 марта 2018 г., 18:50:25

    Разве большинство не попробует посетить основную страницу документации по секьюрности symfony.com/doc/current/security.html

    Мне кажется тут дано исчерпывающее руководство, как настроить http basic authentication

  3. №11203
    Sam
    Sam 12 марта 2018 г., 21:09:07

    Судя по вопросу на StackOverflow и другим результатам поиска, нет.

  4. №11204
    Макс
    Макс 12 марта 2018 г., 21:31:10

    Полностью не согласен со статьей. По ссылке выше, после прочтения, этот конфиг строится без труда.

  5. №11205
    Sam
    Sam 13 марта 2018 г., 1:32:51

    Макс, почти. В официальной доке мешает упоминание пользователя. Особенно сбивает с толку факт его аутентификации и скриншот панельки (хранение в сессии). Думаю, именно поэтому возникают подобные вопросы. Как решение вижу упомянуть stateless прямо в основной доке.

  6. №11206
    Alexey
    Alexey 13 марта 2018 г., 11:21:58

    После вашего описания вспомнилась пару дней назад прочитанная статья о подходе к разработке ПО Чем хуже, тем лучше

  7. №11207
    Sam
    Sam 13 марта 2018 г., 14:09:42

    Похоже, но нет. Там про простоту реализации в ущерб всему остальному.

  8. №11208
    Denis
    Denis 13 марта 2018 г., 20:52:39

    Skyeng на symphony?)

  9. №11209
    Sam
    Sam 13 марта 2018 г., 22:43:35

    Denis, частично да. Там много всего: Yii 1.1, Symfony, nodejs и так далее...

  10. №11210
    LAV45
    LAV45 20 марта 2018 г., 0:46:25

    Может, пока не поздно, стоит попробовать обратить их в нашу веру? )))

  11. №11211
    Sam
    Sam 20 марта 2018 г., 18:53:42

    В веру в прагматизм и баланс? Судя по общению с Fabien-ом, лично у него она присутствует в полном объёме.

  12. №11212
    LAV45
    LAV45 20 марта 2018 г., 20:36:54

    "в нашу веру" - я имел в виде переписывать проект Skyeng не на Symfony, а переписать на Yii2.

  13. №11217
    Sam
    Sam 21 марта 2018 г., 13:11:56

    LAV45, дело в том, что Skyeng — это не один проект и не одна команда. Вот сейчас смотрю на git и там 194 репозитория, из них как минимум половина — продакшн-проекты. Там уже есть и Yii и Symfony и нода и Ruby ещё много чего...

  14. №11231
    Дмитрий
    Дмитрий 26 марта 2018 г., 5:02:51

    Последний раз читал документацию по security лет 5-6 назад , практически сразу, как symfony2 релизнулась. До сих пор помню, как сделать то, чего ты хочешь. Тут точно порог вхождения виноват?

  15. №11236
    Василий
    Василий 29 марта 2018 г., 10:07:51

    Именно поэтому я и предпочитаю продукты от Zend, ибо там не нужно искать одно единственное правильное решение. Тебе просто предоставляют какой-то пакет, с каким-то функционалом. А как ты его будешь использовать - дело твое. Конечно, это все равно не спасает от просмотра "кишок", зато ты сам волен строить свою архитектуру.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.