10 Mayıs 2011 Salı

Httpclient ile proxy arkasından NTLM authentication kullanma

Httpclient ile web sayfalarını çağırmak istiyordum fakat şirketimde proxy vardı buda yetmiyormuş gibi birde Basic authentication yerine NTLM authentication ı kullanıyorlardı.Kısa bir araştırma sonrasında NTLM desteğinin apache kütüphanesine 4.1.1 versiyonunda geldiğini gördüm ve ilk olarak kütüphanemi güncelledim.Daha sonra setProxy metodumu aşağıdaki gibi değiştirdim.Sonuç bingo :)

public static void setProxy(String proxyHost, int proxyPort, String username, String password,String proxydomainname,String pcname,String pcdomainname) {

httpclient.getAuthSchemes().register("ntlm", new NTLMSchemeFactory());
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(proxyHost, proxyPort, proxydomainname),
new NTCredentials(username, password,pcname,pcdomainname)
);

setProxy(proxyHost, proxyPort);
}




public static void setProxy(String proxyHost, int proxyPort) {
HttpHost proxy = new HttpHost(proxyHost, proxyPort);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
}

Hiç yorum yok:

Yorum Gönder