Мне не очень нравятся инструменты с очень высоким порогом вхождения. Не потому, что я сам не могу с ними работать (могу), а потому как на какие-то мелочи команда тратит непомерно много времени.
Я был наслышан про 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
Мораль: гибко сделать не так сложно. Просто сделать нелегко.
Можно, кстати, захэшировать этот пароль командой
security:encode-password
тогда совсем кошерно будет