POST-запрос к Jira REST API с использованием заголовка Oauth - 401 с ошибкой «Анонимный пользователь» - PullRequest
0 голосов
/ 01 марта 2019

Я создаю веб-приложение, в котором будет форма для отправки отчетов об ошибках.Форма отправки сообщения об ошибке при отправке запускает HTTP-запрос POST к экземпляру JIRA с использованием конечной точки jira / rest / api / 2 / issue , чтобы создать одну проблему на основе того, что пользователь ввел вform.

Я аутентифицировал свое приложение на экземпляре JIRA и получил токен носителя Oauth для включения в мои заголовки HTTP-запроса.Однако, когда этот запрос POST запущен, я получаю сообщение об ошибке 401 со следующим сообщением об ошибке:

Анонимные пользователи не имеют права создавать проблемы в этом проекте.Пожалуйста, попробуйте сначала войти в систему.

Я не уверен, почему сервер JIRA считает этот запрос анонимным, поскольку запрос содержит заголовок «Авторизация» с включенным маркером Oauth, который, как я считаю, должен аутентифицироватьзапрос в качестве определенного пользователя.Но, возможно, я неправильно понимаю взаимосвязь между маркером Oauth и экземпляром JIRA.

Вот как выглядит функция, которая запускает запрос (используя React):

  submitBug() {
    var jira_create_issue_api_url = "https://placeholder.org/jira/rest/api/2/issue";
    var xhttp = new XMLHttpRequest();

    xhttp.open("POST", jira_create_issue_api_url, true); //async POST to API resource

    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.setRequestHeader("Accept", "application/json");
    xhttp.setRequestHeader("X-Atlassian-Token", "no-check");
    xhttp.setRequestHeader("Authorization", "Bearer <oauth token here>");

    xhttp.onload = () => {
      console.log("JIRA REST API responded: ");
      console.log(xhttp.status);
      console.log(xhttp.response);
    };

    var summary_text = this.props.bug_summary; //filled out by user in form
    var desc_text = this.state.bug_description; //filled out by user in form

    var bug_data = {
      fields: {
        project: {
          key: "KEY"
        },
        summary: summary_text,
        description: desc_text,
        issuetype: {
          name: "Bug"
        }
      }
    };
    xhttp.send(JSON.stringify(bug_data)); 
  }

Любое понимание очень ценится!Я новичок в разработке с JIRA REST API, поэтому я могу упустить что-то очевидное.

Редактировать : По запросу, заголовки, как они появляются в Chrome:

Принять: application / json

Авторизация: Носитель [токен здесь]

Тип содержимого: application / json

Источник: [URL-адрес приложения]

Referer: [app url]

User-Agent: [информация для браузера]

X-Atlassian-Token: без проверки

...