Я пытаюсь связаться с сервером IBM Rational Quality Manager, используя его REST API. Я использую плагин браузера RESTClient, и пока браузер вошел в систему, все работает как положено. Для справки, мои запросы выглядят так
https://server/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/project/testscript/urn:com.ibm.rqm:testscript:42
Однако, если я подожду достаточно долго, пока RQM выйдет из системы, REST API скажет, что мне нужно снова войти в систему, чтобы продолжить (см. ниже). Я почти уверен, что это можно сделать с помощью самого API, поскольку RQM поставляется с RQMUrlUtility, которая принимает имя пользователя и пароль и запускает в основном те же запросы REST, что и я:
java -jar RQMUrlUtility.jar -command GET -user JazzUserID -password JazzPassword -filepath pathtoFile -url REST_URL
На данный момент я нашел эта тема, объясняющая, как войти в систему, используя базовую аутентификацию HTTP. Следуя этому совету, я добавил в запрос Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
(не мой настоящий пароль), но RQM по-прежнему не может войти в систему. Я также пытался установить User-Agent
в фиктивное значение, а также отправить значение из JSESSIONID
в заголовке X-Jazz-CSRF-Prevent
, как описано здесь, но независимо от того, присутствуют все эти заголовки или нет, я получаю один и тот же ответ:
Status Code: 200 OK
Cache-Control: no-cache="set-cookie, set-cookie2"
Connection: Keep-Alive
Content-Encoding: gzip
Content-Language: en-US
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Jan 2016 15:48:02 GMT
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Keep-Alive: timeout=10, max=100
Set-Cookie: JazzFormAuth=Form; Path=/qm; Secure
x-com-ibm-team-scenario=ac55f959-c738-4ef0-854d-6e37648edcba%3Bname%3DInitial+Page+Load%3Bextras%3D%2Fqm%2Fauth%2Fauthrequired%2C1453823282026; Path=/
Transfer-Encoding: chunked
X-Powered-By: Servlet/3.0
X-com-ibm-team-repository-web-auth-msg: authrequired
Может ли кто-нибудь, у кого есть опыт работы с RQM API, сказать мне, что не так? Или, возможно, я упускаю что-то основное, общее для большинства API RESP?