API поиска SonarQube не будет проходить аутентификацию - PullRequest
0 голосов
/ 02 марта 2019

Я пишу короткую программу для сбора метрик из проектов в SonarQube.

Я использую два из apis SonarQube: api / компоненты / поиск и api / меры / компонент.

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

В моей Java-программе компонент api хорошо аутентифицируется и возвращает результаты.Тем не менее, поиск API (при аутентификации точно таким же методом) просто возвращает:

{"errors":[{"msg":"Authentication is required"}]}

Любые идеи о том, почему два API проявляют различное поведение при вызове в программе Java?

Выполнение команд curl (работает для обоих):

curl -u TOKEN: https://sonarqube-XXX.co.uk/api/components/search?qualifiers=DIR&q=master

curl -u TOKEN: https://sonarqube-XXX.co.uk/api/measures/component?componentId=XXX&metricKeys=coverage

Java-код для аутентификации и HTTP-запрос с API поиска (работает для API компонента):

CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(TOKEN, "");
provider.setCredentials(AuthScope.ANY, credentials);
HttpClient httpClient = HttpClientBuilder.create()
        .setDefaultCredentialsProvider(provider)
        .build();

HttpGet httpGet = new HttpGet("https://sonarqube-XXX.co.uk/api/components/search?qualifiers=DIR&q=master");
HttpResponse response = httpClient.execute(httpGet);
String componentInfo = EntityUtils.toString(response.getEntity());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...