tôi cố gắng truy cập vào một danh sách Sharepoint qua JAX-WS như mô tả hereJAX-WS Sharepoint 401 NTLM trái phép
Tuy nhiên, khi chạy đoạn code dưới đây tôi nhận được:
java.lang.Exception: Exception. See stacktrace.com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 401: Unauthorized
Sharepoint yêu cầu xác thực NTLM. Điều gì có thể là vấn đề? Cảm ơn rất nhiều!
public static ListsSoap sharePointListsAuth(String userName, String password) throws Exception {
ListsSoap port = null;
if (userName != null && password != null) {
try {
Lists service = new Lists();
port = service.getListsSoap();
System.out.println("Web Service Auth Username: " + userName);
((BindingProvider) port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, userName);
((BindingProvider) port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password);
} catch (Exception e) {
throw new Exception("Error: " + e.toString());
}
} else {
throw new Exception("Couldn't authenticate: Invalid connection details given.");
}
return port;
}
Đó có phải là thiết lập duy nhất cho toàn bộ ứng dụng không? Điều gì sẽ xảy ra nếu tôi cần xác thực yêu cầu cụ thể với thông tin đăng nhập đó? – glaz666
Bạn có thể biết URL nào đang yêu cầu thông tin đăng nhập bằng getRequestingURL() bên trong lớp Authenticator tùy chỉnh của bạn. Vì vậy, bạn có thể trả lại thông tin xác thực cho phù hợp. – jmend
@MarcelLevy - Mã bạn cung cấp ở đâu phù hợp với mã trong câu hỏi của OP? Liên kết bạn cung cấp hiện đã chết ... – Joe