FOSRestBundle игнорирует конфигурацию несанкционированного вызова

Я создаю REST-API, и в настоящее время Basic Auth определен как аутентификация.
Конфигурация брандмауэра Symfony:

secured_area:
pattern:    ^/
anonymous: false
http_basic:
realm: "Secured Basic Auth Area"

Это приводит к правильному поведению, если я делаю запрос без проверки подлинности, я получаю правильный заголовок:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Secured Basic Auth Area"...

Но проблема сейчас в том, что если я делаю запрос через браузер, я всегда получаю всплывающее окно Basic Auth. Чтобы предотвратить это, я мог бы использовать unauthorized_challenge Конфигурация FOSRestBundle, чтобы изменить пользовательский вызов аутентификации. Это не меняет возвращаемый заголовок.

Конфиг для остальных пакетов:

fos_rest:
unauthorized_challenge: "xxxBasic realm=\"Foo Area\""access_denied_listener:
json: true

Версия FOSRestBundle — 1.4.2, версия Symfony — 2.3.18.

Любая идея, в чем может быть проблема, что параметр FOSRestBundle игнорируется?

1

Решение

Решил, проблема была:

У меня был kernel.request слушатель, который выдавал исключение AuthenticationException, это, казалось, привело к проблеме, заключающейся в том, что дальнейшее распространение события не удалось, и слушатель RestBundle не был вызван должным образом.

Для полноты, после того, как это было исправлено, я столкнулся с другой проблемой, что ответ всегда содержал Исключение как вывод HTML. Чтобы решить эту проблему, мне также пришлось настроить контроллер исключений FOSRestBundle в конфигурации Twig.

Мой app / config.yml теперь выглядит так (для соответствующих частей):

twig:
debug:            "%kernel.debug%"strict_variables: "%kernel.debug%"# Handle expections via the FOSRestBundle
exception_controller: 'FOS\RestBundle\Controller\ExceptionController::showAction'

fos_rest:
unauthorized_challenge: "xxxBasic realm=\"Foo Area\""access_denied_listener:
json: true
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector