Jira Rest Java 客户端:“403 Forbidden”错误

Jira Rest Java Client: "403 Forbidden" error

几天来我一直在尝试连接到 Jira 服务器(使用基本身份验证),但无法正常工作。我总是收到“403 Forbidden”错误。同时我很绝望,希望有人能帮助我。

示例代码如下所示:

public class Main
{
    private static final String JIRA_URL = "https://jira.mycompany.com/rest/api/latest/project/";
    private static String auth = new String(Base64.encode("admin" + ":" + "password"));
    private static String headerAuthorization = "Authorization";
    final static String headerAuthorizationValue = "Basic " + auth;
    final static String headerType = "application/json";


    public static void main(String[] args) throws Exception
    {
        Client client = Client.create();
        WebResource webResource = client.resource(JIRA_URL);

        ClientResponse response = webResource.header(headerAuthorization,headerAuthorizationValue).type(headerType).accept("application/json").get(ClientResponse.class);

        int statusCode = response.getStatus();
        if (statusCode == 401) {
            throw new AuthenticationException("401 Invalid Username or Password");
            } else if (statusCode == 403) {
                throw new AuthenticationException("403 Forbidden");
                }
    }

}

如前所述,我总是收到 403 错误。 :( 如果我在浏览器中输入 URL,它可以正常工作,所以我完全不知所措。谁能看出我做错了什么?非常感谢您的帮助!

编辑 2020-05-03

根据 PiRocks 的建议,我曾经尝试比较调用。

浏览器调用:

Header:

对我来说看起来是一样的,但不幸的是我不知道 header 中的很多细节。我的代码有什么不同吗?

邮递员: 此外,我试图向 Postman 提出请求。那也行。 授权类型也是 "Basic Auth"。

如您所见,我收到了 200 状态码,一切正常。在我看来,请求与我的代码相同,不是吗?

此外,我尝试了 Postman 的代码,但奇怪的是,即使使用此代码,我也会收到 403 错误。

还有其他人有什么想法吗?我 运行 想不出可能出了什么问题...:(

我发现了错误。虽然我通过 VPN 连接到公司网络,但我必须设置代理:

System.getProperties().put("https.proxyHost", proxyHost);
System.getProperties().put("https.proxyPort", proxyPort);
System.getProperties().put("https.proxyUser", proxyUser);
System.getProperties().put("https.proxyPassword", proxyPassword);
System.getProperties().put("https.proxySet", "true");

现在一切正常。这个愚蠢的简单错误让我损失了很多天...