Интеграция JIRA - PullRequest
       12

Интеграция JIRA

4 голосов
/ 24 января 2012

Какие схемы аутентификации доступны для интеграции стороннего приложения с jira 4.3. Очевидно, что получение имени пользователя и пароля от клиента звучит абсурдно. Кроме того, я получаю, что oauth-аутентификация доступна только с версии 5. Пожалуйста, дайте мне знать. Спасибо.

PS. Я не ищу разработку плагина или использование остальной версии 5. Я просто пытаюсь получить данные из jira, используя остальные API версии 4.4.1.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Вы всегда можете просто использовать один логин (например, анонимный пользователь) для связи с Jira за кулисами, не спрашивая у пользователя пароль. Вы также можете разрешить пользователю создавать проблемы анонимно . Или настройте проекты для публичного просмотра .

0 голосов
/ 20 мая 2016

Если это локальный Jira (установлен в вашей системе), вы можете вызывать любой клиентский API для извлечения данных, просто предоставив URL-адрес и кодированный адрес (с именем пользователя и паролем).

    String getUrl = applicationProperties.getjURL() + "/rest/api/1.0/XXX";
String jiraUser = applicationProperties.getJiraUser().trim();
String jiraPwd = applicationProperties.getJiraPassword().trim();
String auth = new String(Base64.encode(jiraUser + ":" + jiraPwd));

HttpGet get = new HttpGet(getUrl);
StringEntity postingString = new StringEntity(gson.toJson(descrptionBean));
            post.setEntity(postingString);
            post.setHeader("Authorization", "Basic " + auth);
            post.setHeader("Content-type", "application/json");
            HttpClient httpClient = new org.apache.http.impl.client.DefaultHttpClient();
            HttpResponse response = httpClient.execute(get);

..но если это SSL / https, то вам нужно установить системное свойство с truststore, keystore, keyStorePassword и т. д. (в случае использования Java в качестве технологии).Вы можете использовать API JiraRestClientFactory для создания клиента jira, как показано ниже.

public JiraRestClient getRestClient() {

    System.setProperty("javax.net.ssl.trustStore", Constants.KEYSTORE);
    System.setProperty("javax.net.ssl.keyStore", Constants.KEYSTORE);
    System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
    String trustStore = System.getProperty("javax.net.ssl.trustStore");
    System.setProperty("-Dlog4j.configuration", "log4j.properties");
    if (trustStore == null) {
        Constants.REPORT.info("javax.net.ssl.trustStore is not defined, Please generate \"KeyStore.jks\" of JIRA Instance");
    }
    final JiraRestClientFactory jiraRestClientFactory = new AsynchronousJiraRestClientFactory();
    final HttpClientOptions options = new HttpClientOptions();
    options.setConnectionTimeout(15, TimeUnit.MINUTES);
    options.setSocketTimeout(15, TimeUnit.MINUTES);
    options.setConnectionPoolTimeToLive(15, TimeUnit.MINUTES);
    options.setRequestPreparer(new Effect<Request>() {

        @Override
        public void apply(final Request request) {

            new BasicHttpAuthenticationHandler(applicationProperties.getJiraUser().trim(), applicationProperties.getJiraPassword().trim()).configure(request);
        }
    });
    try {
        URI serverUri = new URI(applicationProperties.getjURL().trim());
        defaultHttpClient = new DefaultHttpClient<>(new NoOpEventPublisher(), new RestClientApplicationProperties(serverUri), ThreadLocalContextManagers.noop(), options);
        return jiraRestClientFactory.create(serverUri, defaultHttpClient);
    } catch (Exception e) {
        String msg = "Terminating the application while connecting to RestClient : " + e.getMessage();
        Constants.REPORT.info("javax.net.ssl.trustStore is not defined, Please generate \"KeyStore.jks\" of JIRA Instance");
        Constants.REPORT.info(msg);
        Constants.ERROR.info(msg);
        Constants.ERROR.info(Level.SEVERE, e);
        System.exit(-1);
    }
    return null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...