我想以编程方式读取受Kerberos保护的WebDAV服务器的文件。
我尝试将 Kerberos 支持添加到Sardine (Java),但似乎效果不佳。
是否有支持 Kerberos 的 WebDAV 库?(任何语言,最好是开源的)
我发现可行的解决方案是使用通过 Apache HttpClient 扩展 HttpRequestBase 的 Sardine 方法类。您将需要同时使用 httpclient 和 httpclient-win
try {
CloseableHttpClient client = WinHttpClients.createDefault();
HttpMove move = new HttpMove(fullSource, fullDestination, false);
CloseableHttpResponse response = client.execute(move);
if (response.getStatusLine().getStatusCode() == 201){
System.out.println("Yay");
}
} catch (Exception e) {
e.printStackTrace();
}
throw new Exception("Unable to move node");
以下是使用的依赖项(gradle 形式)
传输库需要 Kerberos 支持而不是您的 WebDAV 库。尝试修复该传输库。Oracle 的 URLConnection 就是这样做的。