我正在尝试通过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。
谢谢,
答案 0 :(得分:0)
Default Web Site
上IIS Manager
的基本身份验证已启用,但未启用特定网站的Basic Authentication
。通过为特定网站启用Basic Authentication
解决了问题。