Necesito consumir un servicio web de reposo con java, pasando las credenciales de una cuenta de usuario de dominio.autenticarse con ntlm (o kerberos) usando java UrlConnection
En este momento estoy haciendo con ASP clásico
set xmlHttp = server.createObject("msxml2.serverxmlhttp")
xmlHttp.open method, url, false, domain & "\" & user, password
xmlHttp.send body
out = xmlHttp.responseText
set xmlHttp = nothing
y con 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();
cómo puedo lograr esto con Java? Tenga en cuenta que no estoy usando las credenciales del usuario actualmente registrado, estoy especificando la cuenta de dominio (tengo la contraseña)
por favor dígame que es tan fácil como con asp clásico y asp.net .. ..
Hey Matt, muchas gracias por su respuesta, pero me pregunto si es posible hacer esto, con el buil-en las clases JRE, utilizando Kerberos en lugar de NTLM .. Quiero decir, kerberos no es material ptopietary como NTLM ... – opensas
Lo último que escuché es que el cliente Apache NO es compatible con NTLMv2. Y son reacios a tocar JCIFS porque a) afirman que LGPLv2 no es compatible con su licencia yb) en general están cansados de las cosas de MS. Pero no importa porque si quiere interoperar con Microsoft, NTLM es el denominador común de los mecanismos de autenticación.Kerberos no funciona si el cliente no tiene acceso a un controlador de dominio o si la sincronización de tiempo está desactivada o si el DNS no es del todo correcto o ... etc. – user8134
Hola, ioplex. No estoy seguro de dónde oíste esto, pero es incorrecto. Por favor revisa los documentos a los que he vinculado. He utilizado NTLM con éxito tanto con HttpClient 3.xy 4.0. –