0

我想以编程方式读取受Kerberos保护的WebDAV服务器的文件。

尝试将 Kerberos 支持添加到Sardine (Java),但似乎效果不佳。

是否有支持 Kerberos 的 WebDAV 库?(任何语言,最好是开源的)

4

2 回答 2

1

我发现可行的解决方案是使用通过 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 形式)

  • 编译组:'com.github.lookfirst',名称:'sardine',版本:'5.+'
  • 编译组:'org.apache.httpcomponents',名称:'httpclient',版本:'4.5.+'
  • 编译组:'org.apache.httpcomponents',名称:'httpclient-win',版本:'4.5.+'
于 2017-03-30T19:19:44.330 回答
0

传输库需要 Kerberos 支持而不是您的 WebDAV 库。尝试修复该传输库。Oracle 的 URLConnection 就是这样做的。

于 2012-07-07T21:30:41.227 回答