Tôi cần sử dụng dịch vụ web còn lại với java, chuyển thông tin đăng nhập của tài khoản người dùng miền.xác thực bằng ntlm (hoặc kerberos) bằng cách sử dụng java UrlConnection
ngay bây giờ tôi đang làm nó với asp cổ điển
set xmlHttp = server.createObject("msxml2.serverxmlhttp")
xmlHttp.open method, url, false, domain & "\" & user, password
xmlHttp.send body
out = xmlHttp.responseText
set xmlHttp = nothing
và với 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();
làm thế nào tôi có thể đạt được điều này với java? Hãy xem xét rằng tôi không sử dụng thông tin đăng nhập của người dùng hiện đang đăng nhập, tôi đang chỉ định tài khoản miền (Tôi có mật khẩu)
hãy cho tôi biết nó dễ dàng như với asp cổ điển và asp.net .. ..
Hey Matt, thanks a lot cho câu trả lời của bạn, nhưng tôi tự hỏi, nếu nó có thể làm điều này, với buil-in lớp JRE, sử dụng Kerberos thay vì NTLM .. Ý tôi là, kerberos không phải là công cụ phổ biến như NTLM ... – opensas
Cuối cùng tôi nghe nói, máy khách Apache KHÔNG hỗ trợ NTLMv2. Và họ không muốn khai thác JCIFS bởi vì a) họ tuyên bố rằng LGPLv2 không tương thích với giấy phép của họ và b) nói chung họ rất mệt mỏi với công cụ MS. Nhưng nó không quan trọng bởi vì nếu bạn muốn interop với Microsoft, NTLM là mẫu số chung của cơ chế xác thực.Kerberos không hoạt động nếu máy khách không có quyền truy cập vào bộ điều khiển miền hoặc nếu đồng bộ hóa thời gian bị tắt hoặc nếu DNS không hoàn toàn đúng hoặc ... v.v. – user8134
Xin chào ioplex. Tôi không chắc chắn nơi bạn nghe điều này, nhưng nó là không chính xác. Vui lòng xem tài liệu tôi đã liên kết. Tôi đã sử dụng thành công NTLM với cả HttpClient 3.x và với 4.0. –