我需要使用java来传递一个域用户帐户的凭证来使用其他Web服务。使用java UrlConnection进行ntlm(或kerberos)验证
现在我用传统的ASP
set xmlHttp = server.createObject("msxml2.serverxmlhttp")
xmlHttp.open method, url, false, domain & "\" & user, password
xmlHttp.send body
out = xmlHttp.responseText
set xmlHttp = nothing
,并用asp.net
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Credentials = new NetworkCredential(user, password, domain);
request.Method = WebRequestMethods.Http.Get
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader outStream = new StreamReader(response.GetResponseStream(), Encoding.UTF8) ;
output = outStream.ReadToEnd();
做,我该怎么用java实现这一目标?考虑到我没有使用当前登录用户的凭据,我正在指定域帐户(我有密码)
请告诉我,它与使用经典的asp和asp.net一样简单.. ..
嘿马特,非常感谢您的回答,但我不知道是否有可能做到这一点,与BUIL,在JRE类,使用Kerberos而不是NTLM .. 。我的意思是,Kerberos不是像NTLM那样的普遍的东西... – opensas 2009-07-26 18:54:24
最后我听说,Apache客户端不支持NTLMv2。他们不愿意挖掘JCIFS,因为a)他们声称LGPLv2与他们的许可证不兼容; b)他们通常对MS的东西感到厌倦。但这并不重要,因为如果您想与Microsoft进行互操作,NTLM是认证机制的共同特征。如果客户端无法访问域控制器,或者时间同步关闭或者DNS不太正确或者等等,Kerberos不起作用。等等。 – user8134 2010-02-09 01:41:17