прерывистая ошибка ралли «Не разрешено выполнять действие: неверный ключ» для запроса POST в расширении chrome - PullRequest
0 голосов
/ 27 февраля 2019

Я разработал расширение Chrome, используя Rally WSAPI v2.0, и оно в основном выполняет следующие действия:

  1. получает пользователя и проект и сохраняет их
  2. получает текущую итерацию каждый раз
  3. отправить запрос на публикацию для создания рабочего элемента

На третьем шаге я иногда получаю сообщение об ошибке ["Недопустимо выполнять действие: недействительноключ "] с конца прошлого месяца.

[обновлено] Ошибка может быть воспроизведена каждый раз, если я захожу на сайт Rally через SSO, прежде чем использовать расширение для отправки запросов через apikey. Какова лучшая практика для отправки последующих запросов черезapikey в моем расширении , так как я не могу контролировать привычки конечных пользователей?

Я видел подобные посты, но ни один из них не полезен ... и в случае, если он помогает:

  • Я добавляю ZSESSIONID: apikey в заголовок моего запроса, вместо пользователя / пароля для аутентификации, поэтому я считаю, что маркер безопасности не требуется (https://comm.support.ca.com/kb/api-key-and-oauth-client-faq/kb000011568)
  • url начинается с https://rally1.rallydev.com/slm/webservice/v2.0/
  • проблема устранена после очистки файлов cookie для https://rally1.rallydev.com/,, но каким-то образом она появляется снова через некоторое время
  • Я проверил файл cookie при воспроизведении проблемы и нашел файл с именем ZSESSIONID и егозначение стало чем-то другим, а не apikey. Не уверен, если это имеет значение, хотя ...
  • код для запроса:

function initXHR(method, url, apikey, cbFunc) {
  let httpRequest = new XMLHttpRequest();
  ...
  httpRequest.open(method, url);
  httpRequest.setRequestHeader('Content-Type', ' application\/json');
  httpRequest.setRequestHeader('Accept', ' application\/json');
  httpRequest.setRequestHeader('ZSESSIONID', apikey);
  httpRequest.onreadystatechange = function() {
    ...
    };
  return httpRequest;
}
...
usReq = initXHR ('POST', baseURL+'hierarchicalrequirement/create', apikey, function(){...});

У кого-нибудь есть идеи или предложения?Спасибо миллион!

1 Ответ

0 голосов
/ 28 февраля 2019

Я видел эту ошибку, когда для ключа API были настроены разрешения только на чтение и полный доступ.Я хотел бы начать с того, что ваш ключ имеет только полный доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...