Я написал API, который возвращает JSON. Определенные маршруты защищены аннотацией @Security на Action Controller.Symfony2 @Security Аннотация: Отключить перенаправление, если вы не вошли в систему
Если метод is_granted() завершился неудачно, я поймаю заброшенное исключение и выдаст некоторую ошибку json с кодом статуса 403 http.
Это работает, но только если пользователь вошел в систему, но не имеет достаточных прав. Если вы не вошли в систему, пользователь перенаправляется на страницу входа в систему (вообще-то не полезен при вызове ajax).
Что я могу сделать, чтобы предотвратить перенаправление?
Я пытался добавить следующую строку в раздел security.yml access_control, но без эффекта:
access_control:
- { path: ^/api, role: IS_AUTHENTICATED_ANONYMOUSLY }
Вы используете '{% if is_granted ('...')%}' в своих шаблонах или '{% if app.user и is_granted ('...')%}'? –
Я использую @Security ("has_role ('...')") и @Security ("is_granted (...)") непосредственно в действии контроллера – user2534194
Таким образом, вы получаете доступ к выражению «Expression ... denied» Ошибка? –