Windows Server 2012中使用Java进行基本身份验证失败

时间:2016-10-24 10:24:33

标签: java httpurlconnection basic-authentication

我正在尝试通过Windows Server 2012连接我的证书服务。我已经在服务器上启用了基本身份验证,我可以从提供用户名和密码的浏览器访问我的服务。 我在Java中使用HttpURLConnection打开连接。 使用以下代码成功连接。

static class MyAuthenticator extends Authenticator {
    public PasswordAuthentication getPasswordAuthentication() {
        System.out.println("trying to authenticate");
        return new PasswordAuthentication("user", "password".toCharArray());
    }
}

Authenticator.setDefault(new MyAuthenticator())

但我需要使用以下代码进行连接,它给出了401错误:

String encoding = Base64.encode("user:password".getBytes());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty  ("Authorization", "Basic " + encoding);

我知道为什么会得到401。

谢谢,

1 个答案:

答案 0 :(得分:0)

Default Web SiteIIS Manager的基本身份验证已启用,但未启用特定网站的Basic Authentication。通过为特定网站启用Basic Authentication解决了问题。