При отправке запроса на конечную точку токена OAuth2 RFC говорит, что ответ должен быть в формате JSON. Однако при использовании Spring Security происходят странные вещи. Конечно, ошибка не в моем коде, я использовал демонстрационное приложение Sparklr2, чтобы проверить следующее. Проблема в том, что в зависимости от используемого агента пользователя результат отличается.Почему HTTP-ответ отличается для разных пользовательских агентов? (Конечная точка токена безопасности OAuth2)
получить доступ к URL-адрес http://localhost:8084/sparklr2/oauth/token
Если я использую локон, Advanced REST Client, телнет или подобное, то результат будет так же, как ожидалось:
{"error":"unauthorized","error_description":"Full authentication is required to access this resource"}
Если я однако пользователь Firefox или Chrome, я получаю ответ в формате XML:
<oauth><error_description>Full authentication is required to access this resource</error_description><error>unauthorized</error></oauth>
Почему происходит это странное поведение?
Весна, вероятно, почитает заголовок 'Accept'. Btw Я нашел это - https://tools.ietf.org/html/draft-richer-oauth-xml-01#section-4.1. –
Звучит правильно. Использование 'Accept: application/xml' дает тот же ответ, что и в Firefox/Chrome. Мне интересно, правильно ли это поведение. Но в любом случае, это не имеет большого значения, так как клиенты не будут запрашивать xml-ответ, мне просто интересно, что это было неправильно, когда вы впервые попробовали его в браузере. – Misch
@PavelHoral Относительно вашего отредактированного комментария: О, я не знал об этом проекте, поэтому, в конце концов, вы не можете упрекнуть Spring в каком-либо неправильном поведении. Превратите свой комментарий в ответ, и я соглашусь с ним. – Misch