<rmcreative>

RSS

Порог вхождения в 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

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

  16. №11549
    Дмитрий
    Дмитрий 09 окт. 2019 г., 9:22:58

    Я так и не смог осилить, как сделать аутентификацию пользователя после регистрации. security-bundle это жесть, такое чувство, что разработчики этого специально издеваются над людьми.

  17. №11818
    Макс
    Макс 29 февр. 2020 г., 19:18:25

    Спасибо большое! Мучался с этой херней час пока не наткнулся на Вашу статью.

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

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

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