当它部署在Mac OS X上时,Tomcat的webdav重复了401

时间:2013-05-04 09:59:14

标签: java tomcat webdav

我已经在Mac OS X 10.7上使用Java 1.7.0_04-b21部署了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配置。

有人可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

问题解决了。

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

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