Запрос "PUT" с oauth2 - PullRequest
0 голосов
/ 25 декабря 2018

Могу ли я использовать запрос "PUT" с oauth2?Я написал REST API, приложение с использованием Java сервлета.Когда я использую запрос "POST", я получаю успешный ответ с access_token.

Но, когда я использую запрос "PUT", мне выдается следующая ошибка.

{"error_description": "Отсутствует значение параметра grant_type", "error": "invalid_request"}

Я четко настроил PUT-запрос и POST-запрос следующим образом.

POST-запрос

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    try
    {
      handleGrants(request, response);
    }
    catch (Exception e)
    {
      response.getWriter().write("Error in Authentication System!! ");
      logger.error("Failed trying to get tokens", e);
    }
    finally
    {
      response.getWriter().flush();
      response.getWriter().close();
    }
}

PUT-запрос

public void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
    try
    {
      handleGrants(request, response);
    }
    catch (Exception e)
    {
      response.getWriter().write("Error in Authentication System!! ");
      logger.error("Failed trying to get tokens", e);
    }
    finally
    {
      response.getWriter().flush();
      response.getWriter().close();
    }
}

параметры моего тела для "PUT" и "POST "запрос следующим образом.

enter image description here

1 Ответ

0 голосов
/ 26 декабря 2018

Исходя из данной ошибки, я могу сказать, что ваш handleGrants метод не получает тело запроса.Таким образом, говорится, что тип гранта не может быть определен.Возможно, вам следует отладить и увидеть использование параметра внутри функции.

Независимо от того, OAuth 2.0 должен использовать POST для конечной точки токена.

3.2.Конечная точка токена

Клиент ДОЛЖЕН использовать HTTP-метод "POST" при создании запросов токена доступа.

Так что, пожалуйстапридерживайтесь того, что сказано в спецификации, и используйте POST.

Приложение

Согласно RFC2119

ДОЛЖНО

Это слово или термины «ТРЕБУЕТСЯ» или «ДОЛЖНО» означают, что определение является абсолютным требованием спецификации.

...