symfony4 Security Access Denied. Причины отказа в доступе, решение

Ошибка

Access Denied.

По-моему, это единственное исключение, которое выдаёт сообщение с точкой в конце. Точка. ХD

Но не так всё мрачно, если разобраться) Вообще SecurityBundle очень скуп на отладочные сообщения, и причину, по которой он закрыл Вам доступ к сайту, он не скажет. Denied, и всё тут. Но заглянув в код ExceptionListener.php, можно заметить, что бандл пишет логи в случае ошибок. Туда мы и направимся.

Логи в Symfony храняться в /var/log/dev.log. Переходим в конец файла и построчно читаем то, что происходило в тот момент, когда Вы безуспешно загружали страницу. Ищем что-то более менее соответствующее нашим ожиданиям. Вот у меня, например, нашлось:

Access denied, the user is neither anonymous, nor remember-me.

Решение

Моя ошибка была в названии роли: ADMIN. Такое название некорректно. В документации SecurityBundle первой строкой по поводу ролей написано, что название роли должно начинаться с префикса ROLE_. Т.е. приемлимый вариант - ROLE_ADMIN.

Приятной разработки! ♥

Источники