0

我已经在带有 Java 1.7.0_04-b21 的 Mac OS X 10.7 上部署了 tomcat 7.0.39,并打开了 tomcat 附带的 webdav。我尝试使用 BASIC 或 DIGEST 身份验证将其与 Finder 连接,连接失败并且即使我停止连接,tomcat 的访问日志也会重复报告 401 (PROPFIND /webdav/ HTTP/1.1 401 951)。但是当我在使用 java 1.6 的 linux 机器上部署相同的 tomcat 时,它适用于 Mac 的 Finder。如果我从浏览器或 linux 的 nautilus 连接到部署在 Mac OS X 上的 webdav,一切正常。

编辑:重复的 401 消息似乎是无限重定向。EDIT2:当我从 OpenOffice 连接到在 Mac OS X 上运行的 webdav 时,也很好。诡异的。

EDIT3:在以前的情况下,我使用 localhost 连接到 webdav servlet。我只是把localhost改成另外一个ip,比如192.168.2.103,和localhost是同一台机器,Finder正确建立了连接。这真的很奇怪。也许一些缓存会干扰 Finder,因为我已经多次更改了 webdav 对同一 url 的配置。

有人可以帮忙吗?谢谢。

4

1 回答 1

0

问题解决了。

我不清楚原因,但很可能是密钥链中缓存的凭据导致此问题。

由于有另一个相同 uri 的 webdav 部署(使用 localhost 作为服务器名称),一些身份验证信息可能会保存到 localhost 的密钥链中。因此,尝试使用来自 Finder 的 localhost 连接到新的 webdav 部署可能会使用保存的凭据,从而导致操作失败。将 localhost 更改为另一个服务器名称时,没有找到缓存的凭据,并且连接成功。从 Mac OS X 的实用程序中锁定钥匙链后,我将 Finder 指向 webdav uri。当出现要求从钥匙串读取的提示时,我按下拒绝按钮,然后弹出一个对话框,要求输入用户名和密码。所以一切都按预期进行。

于 2013-05-06T05:51:24.730 回答