我必须使用NTLM身份验证(我认为与Kerberos相同)调用一个带有Spring RestTemplate服务的服务。有人知道我怎么做到的吗?
对不起,我的英语。
谢谢..。
发布于 2013-12-10 21:06:53
虽然RestTemplate可以配置为使用Apache HttpClient,但默认情况下它使用java.net类(例如URLConnection)。
以下代码未经测试,但“应该工作”
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));
// maybe use "domain\username" instead
Authenticator.setDefault(new MyAuthenticator("username", "password"));
...
<your-RestTemplate-call-here>
...
class MyAuthenticator extends Authenticator {
private String httpUsername;
private String httpPassword;
public MyAuthenticator(String httpUsername, String httpPassword) {
this.httpUsername = httpUsername;
this.httpPassword = httpPassword;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
System.out.println("Scheme:" + getRequestingScheme());
return new PasswordAuthentication(httpUsername, httpPassword.toCharArray());
}
}https://stackoverflow.com/questions/20504908
复制相似问题