Java Jira HTTP响应代码403

时间:2018-07-31 05:52:24

标签: java rest http jira

我正在尝试通过Jira的其余api获取一些数据。 Thiw网站位于我企业的本地和https上。我们第一次进行此操作时,将由SSO自动登录。也有证书。

我已经检查了有关此错误的所有帖子,尝试使用User-Agent或TrustManager,但没有任何效果:(然后我可以用浏览器访问该页面而没有任何问题。它可以在另外两台计算机上工作,但我实际上并没有了解原因。

我遇到的错误:

  

java.io.IOException:服务器针对URL:https://myjira.xx/rest/api/2/search?jql=project=PARE2+order+by+updated&fields=id,updated,summary,assignee,worklog&startAt=0&maxResults=30返回了HTTP响应代码:403       在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)处       在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

我的代码是:

    public void connectToJira() throws Exception {
    String adresse = "https://myjira.xx/";
    adresse += "rest/api/2/search?jql=project=NAMEProject+order+by+updated&fields=id,updated,summary,assignee,worklog&startAt=0&maxResults=30";

    TrustManager[] trustAllCerts = { new X509TrustManager() {
        public void checkClientTrusted(X509Certificate[] certs, String authType) {
        }

        public void checkServerTrusted(X509Certificate[] certs, String authType) {
        }

        public X509Certificate[] getAcceptedIssuers() {
            return null;
        }
    } };

    try {
        SSLContext sc = SSLContext.getInstance("TLS");
        sc.init(null, trustAllCerts, new SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
    }

    URL url = new URL(adresse);

    HttpURLConnection uc = (HttpURLConnection) url.openConnection();
    uc.addRequestProperty("User-Agent", "Mozilla/5.0");
    uc.setRequestProperty("Authorization", "Basic " + new String(Base64.getEncoder().encode("myUsername:myPassword".getBytes())));

    if (401 == uc.getResponseCode()) {
        throw new Exception("Code erreur 401");
    }

    StringBuilder sb = new StringBuilder();
    BufferedReader reader = new BufferedReader(new InputStreamReader(uc.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
        sb.append(line);
    }

    System.out.println(sb.toString());
}

我尝试从我的证​​书添加证书,但存在相同的问题:(

谢谢

0 个答案:

没有答案